728x90
반응형
프로토타입
자바스크립트의 모든 객체는 '자신의 부모 역할을 하는 객체와 연결'되어 있음
(객체지향의 상속 개념과 같은 것)
이러한 부모 객체를 자바스크립트에서는 '프로토타입'이라고 부른다.
console.dir(foo);
객체 리터럴로 생성한 프로퍼티와 함께 proto 프로퍼티가 존재함
이 프로퍼티가 foo객체의 부모 프로토타입 객체를 가리킴
모든 객체는 자신의 프로토타입을 가리키는 [[Prototype]]이라는 숨겨진 프로퍼티를 가진다.
배열
다른 언어와 달리 배열의 크기를 지정하지 않아도 된다. (굿..)
어떤 위치에 어느 타입의 데이터를 저장하더라도 에러가 발생하지 않는다. (구웃..)
배열 리터럴
var arr = ['a', 'b', 'c'];
console.log(arr[0]); // a
배열 내 인덱스값을 넣어서 접근
배열 요소 생성
var arr = []; // 빈 배열
console.log(arr[0]); // undefined
arr[0] = 1;
arr[2] = 'two';
arr[5] = true;
console.log(arr); // [1, undefined, "two", undefined, undefined, true]
console.log(arr.length); // 6
동적으로 배열 원소 추가 가능
순차적으로 넣을 필요 없이 원하는 인덱스 위치에 동적 추가가 가능하다.
length 프로퍼티
var arr = [0, 1, 2];
console.log(arr.length); // 3
arr.length = 2;
console.log(arr); // [0, 1]
length를 원하는 크기로 늘이거나 줄이면 배열 크기도 이에 맞게 변한다.
push 프로퍼티
var arr = [0, 1, 2];
arr.push(3);
console.log(arr); // [0, 1, 2, 3]
arr.length = 5;
arr.push(10);
console.log(arr); // [0, 1, 2, 3, undefined, 10]
length를 5로 늘리면 arr[4]는 빈 배열이 만들어지고, 그 이후 push를 했기 때문에 arr[5]에 push 값이 들어간다.
배열 프로퍼티 열거
for문을 사용하자
for (var prop in arr) {
console.log(prop, arr[prop]);
}
// 동적 추가 프로퍼티까지 모두 출력
for ( var i = 0; i < arr.length; i++ ){
console.log(i, arr[i]);
}
// 배열의 요소만 출력
유사 배열 객체
length를 프로퍼티로 가진 객체
이 객체는 push로 원소 추가 시 에러가 발생한다.
해결법 : apply() 메서드 사용
Array.prototype.push.apply(obj, ['add']);
728x90
반응형
'자바스크립트' 카테고리의 다른 글
[자바스크립트] call by value vs call by reference (0) | 2018.10.21 |
---|---|
[자바스크립트] 3. 객체 (0) | 2018.10.13 |
[자바스크립트] 2. 데이터 타입 (0) | 2018.10.13 |
[자바스크립트] 1. 소개 (0) | 2018.10.13 |
[자바스크립트] ES2015+ 요약 정리 (0) | 2018.09.19 |