// fruitsArr 배열
var fruitsArr = ['apple', 'orange', 'banana'];
console.log(fruitsArr[0]); // apple
console.log(fruitsArr[1]); // orange
console.log(fruitsArr[2]); // banana
// fruitsObj 객체
var fruitsObj = {
'0': 'apple',
'1': 'orange',
'2': 'banana'
};
console.log(fruitsObj[0]); // apple
console.log(fruitsObj[1]); // orange
console.log(fruitsObj[2]); // banana
// typeof 비교
console.log(typeof fruitsArr); // object
console.log(typeof fruitsObj); // object
// length 프로퍼티
console.log(fruitsArr.length); // 3
console.log(fruitsObj.length); // undefined
// 배열 메서드
fruitsArr.push('lemon'); // lemon 추가
fruitsObj.push('lemon'); // Uncaught TypeError: #<Object> has no method 'push' 발생
객체의 프로토타입과 배열의 프로토타입
배열도 객체라 for in문을 쓸 수 있는데 불필요한 것까지 참조하므로 for문 사용을 권장한다.
delete 연산자는 해당 요소의 값을 undefined로 설정한다.
완전한 삭제는 splice()를 사용해야 한다.
splice(start, deleteCount, item...)
인자가 1개고 숫자 - 인자를 length로 갖는 빈 배열 생성
그외 - 인자를 요소로 갖는 배열 생성
var arr1 = new Array(3);
console.log(arr1) // [undefined, undefined, undefined]
var arr2 = new Array(1, 2, 3);
console.log(arr2) // [1, 2, 3]
length 프로퍼티를 가진 객체를 말한다. apply() 메서드를 이용해 객체임에도 표준 배열 메서드를 사용할 수 있다.
var obj = {
name: 'kim',
length: 1
}
Array.prototype.push.apply(obj, ['jin']);
console.log(obj); // { '1': 'jin', name: 'kim', length: 2 }