[Javascript기초] 2. 객체
객체
배열의 자료형
- 자바스크립트 기본 자료형
- 숫자, 문자열, 불, 함수, undefined
객체와 배열
- 배열은 객체를 기반으로 함
- 배열은 요소에 인덱스로 접근/객체는 요소에 키로 접근
키워드
in
-
해당 키각 객체 안에 있는지 확인 할 수 있음
let student = { 이름 : '강무', 성별 : '남' } console.log(('이름' in student)); // true
with
-
특정 객체를 여러번 사용 할 경우, 그 특정 객체를 생략 할 수 있도록 도와줌
with(반복시킬 구문){ 생략된 구문 }
//BEFORE x = Math.cos(3 * Math.PI) + Math.sin(Math.LN10) y = Math.tan(14 * Math.E) //AFTER with (Math){ x = cos(3 * PI) + sin (LN10) y = tan(14 * E) }
this
- 생성자 함수로 생성될 객체의 속성 지정
생성자 함수
-
객체를 생성할 때 사용하는 함수
- 인스턴스 : 생성자 함수를 기반으로 생성한 객체
- 프로토타입: 생성자 함수로 생성한 객체들이 공동으로 갖는 공간.
- 일반적으로 메서드를 이러한 공간에 선언
생성자 함수 선언
function <생성자 함수 이름> () { this.<속성이름> this.<속성이름> } <생성자 함수 이름>.prototype.<메서드 이름>
let primitiveNumber = 273; let objectNumber = new Number(273); // 속성, 메서드 추가 가능 Number.prototype.method = function(){ return "Method on Prototype" }; console.log(primitiveNumber); // 273 console.log(objectNumber); // obejct 정보 console.log(objectNumber.method()); // "Method on Prototype"
생성자 함수를 사용한 객체 생성
new <생성자 함수 이름>()
기본 내장 객체
- Object 객체 에 있는 메서드
메서드 이름 설명 constructor() 객체의 생성자 함수를 나타냄 hasOwnProperty(name) 객체가 name속성이 있는지 확인함 isPrototypeof(object) 객체가 object의 프로토타입인지 검사함 propertyIsEnumerable(name) 반복문으로 열거할 수 있는지 확인 toLocaleString() 객체를 호스트 환경에 맞는 언어의 문자열로 바꿈 toString() 객체를 문자열로 바꿈 valueOf() 객체의 값을 나타냄
Number
-
숫자를 표현할 때 사용
-
메서드
메서드 이름 설명 toExponential()
숫자를 지수 표시로 나타낸 문자열을 리턴 toFixed()
숫자를 고정 소수점 표시로 나타낸 문자열을 리턴 toPrecision() 숫자를 길이에 따라 지수 표시 또는 고정 소수점 표시로 나타낸 문자열 리턴 -
속성
속성 이름 설명 MAX_VALUE
자바스크립트의 숫자가 나타낼 수 있는 최대 숫자 MIN_VALUE
자바스크립트의 숫자가 나타낼 수 있는 최소 숫자 NaN
자바스크립트의 숫자로 표현할 수 없는 숫자 POSITIVE_INFINITY
양의 무한대 숫자 NEGATIVE_INFINITY
음의 무한대 숫자
String
-
문자열 표현할 때 사용
-
속성
속성 이름 설명 length
문자열의 길이를 나타냄
알아두면 좋은 기본 속성과 메서드
메서드 이름 | 설명 |
---|---|
charAt(position) | position에 위치하는 문자를 리턴 |
concat(args) | 매개변수로 입력한 문자열을 이어서 리턴 |
indexOf(searchString, position) | 앞에서부터 일치하는 문자열의 위치를 리턴 |
lastIndexOf(searchSTring, position) | 뒤에서부터 일치하는 문자열의 위치를 리턴 |
split(separator, limit) | separator로 문자열을 잘라서 배열을 리턴 |
substr(start, count) | start부터 count만큼 문자열을 잘라서 리턴 |
substring(start, end) | start부터 end까지 문자열을 잘라서 리턴 |
Array
-
여러 자료를 쉽게 관리할 수 있게 도와주는 객체
-
생성
생성자 함수 설명 Array() 빈 배열을 만듦 Array(number) 매개변수만큼의 크기를 가지는 배열을 만듦 Array(mixed, … , mixed) 매개변수를 배열로 만듦 -
속성과 메서드
속성 이름 설명 length 요소의 개수를 알아냄 메서드 이름 설명 concat() 매개변수로 입력한 배열의 요소를 모두 합쳐 배열을 만들어 리턴함 join() 배열 안의 모든 요소를 문자열로 만들어 리턴함 pop() 배열의 마지막 요소를 제거하고 리턴함 // 자기 자신을 변화시킴 push() 배열의 마지막 부분에 새로운 요소를 추가 // 자기 자신을 변화시킴 reverse() 배열의 요소 순서를 뒤집음 // 자기 자신을 변화시킴 slice 요소의 지정한 부분을 리턴 sort() 배열의 요소를 정렬함 // 자기 자신을 변화시킴 splice() 요소의 지정한 부분을 삭제하교 삭제한 요소를 리턴 // 자기 자신을 변화시킴
Date
- 날짜와 시간을 표시하는 객체
- getter
- getDate
- getDay
- getHours
- ….
- setter
- setDate
- setDay
- setHours
- …
Math
-
메서드 이름 설명 abs(x) 절대값 x 리턴 ceil(x) x보다 크거나 같은 가장 작은 정수 리턴 floor(x) x보다 작거나 같은 가장 큰 정수 리턴 round(x) x를 반올림 하여 리턴 max(x,y,z …. n) 매개변수 중 최대값 반환 min(x,y,z … n) 매개변수 중 최솟값 반환 pow(x,y) x의 y승 반환 random() 0~1사이의 임의의 숫자 반환
ECMAScript5 Array 객체
메서드 이름 | 설명 |
---|---|
Array.isArray() | 배열인지 확인 |
forEach() | 배열 각각의 요소를 사용해 특정 함수를 for in 반복문처럼 실행 |
map() | 기존의 배열에 특정 규칙을 족용해 새로운 배열은 만듦 |
filter() | 특정 조건을 만족하는 요소를 추출해 새로운 배열을 만듦 |
every() | 배열의 요소가 특정 조건을 모두 만족하는지 확인 |
some() | 배열의 요소가 특정 조건을 적어도 하나 만족하는지 확인 |
reduce() | 배열의 요소가 하나가 뇔 때까지 요소를 왼쪽부터 두개씩 묶는 함수 실행 |
reduceRight() | 배열의 요소가 하나가 뇔 때까지 요소를 오른쪽부터 두개씩 묶는 함수 실행 |
예제
-
forEach()
let array = [50,203,227,2,158,34,23,6,256,10]; array.forEach(element => { console.log(element); });
-
filter()
array.filter(function (element, index, array) { ... })
let array = [50,203,227,2,158,34,23,6,256,10]; let array_odd = array.filter(element=>{ return element%2 == 1 }) console.log(array_odd); // 203, 227, 23
-
map()
array.map(function (element, index, array) { ... })
let array = [50,203,227,2,158,34,23,6,256,10]; let array_map = array.map(element=>{ if(element%2==1) return '홀수' MediaElementAudioSourceNode return '짝수' }) console.log(array_map); // "짝수", "홀수", "홀수", "짝수", "짝수", "짝수", "홀수", "짝수", "짝수", "짝수"
-
every()
array.every(function (element, index, array) { ... })
let array = [50,203,227,2,158,34,23,6,256,10]; console.log(array.every(element=>{ return element > 0; })) // true console.log(array.every(element=>{ return element > 100; })) // false
-
some()
array.some(function (element, index, array) { ... })
let array = [50,203,227,2,158,34,23,6,256,10]; console.log(array.some(element=>{ return element > 100; })) // true console.log(array.some(element=>{ return element > 1000; })) //false
-
reduce()
array.reduce(function (previousValue, currentValue, index, array) { ... })
let scores = [1,2,3,4,5]; let temp = scores.reduce((previousValue, currentValue, index, array)=>{ return previousValue + currentValue; }) console.log(temp); // result : 15
((((1+2)+3)+4)+5)
- reduceRight()는 방향만 다름. 실행 방법은 같음
- (1+(2+(3+(4+5))))
- reduceRight()는 방향만 다름. 실행 방법은 같음
JSON객체
메서드 이름 | 설명 |
---|---|
JSON.stringify() | 자바스크립트 객체를 JSON 문자열로 변환 |
JSON.parse() | JSON 문자열을 자바스크립트 객체로 변환 |
예제
let object = { name:'홍길동', region:'서울특별시' } console.log(typeof object, object); // object로 출력 let str = JSON.stringify(object) console.log(typeof str, str); // 문자열로 출력 let parsed = JSON.parse(str) console.log(typeof parsed,parsed); // 문자열로 출력