728x90
반응형
배열이란!
배열은 어떠한 타입의 값이라도 담을수 있는
번호가 매겨진 인덱스를 갖는 특별한 유형의 객체이다.
배열의 일반적인 값 할당
배열의 인덱스는 숫자인데 , 배열 자체도 하나의 객체여서 key:value 의 프로퍼티를 추가할 수 있다.
const arr = [1,2]
//arr에 2번째 index에 3을 할당
arr[2] = 3
console.log(arr) // [1,2,3]
console.log("length",arr.length) // 3
위와 같이 값을 추가하면 length는 배열 내의 값의 수를 반환한다.
배열에 프로퍼티 할당
//배열에 프로퍼티를 할당
arr["key"] = 5;
console.log(arr) // [ 1, 2, 3, dd: 5 ] 에러가 안난다고..?
console.log("length",arr.length) // 3
원래의 배열에 프로퍼티를 가진 값이 하나가 더 추가됐지만 length는 변함이 없다.
그래서 중간에 값을 하나더 추가하면서 빈 슬롯을 생기게 값을 할당해 보았다.
// 3번째 인덱스는 건너띄고 4번째 인덱스에 값할당
arr[4] = 4
console.log(arr) // [ 1, 2, 3, <1 empty item>, 4, dd: 5 ]
console.log(arr.length) // 5
3번째 인덱스는를 띄워놓고 4번째 인덱스에 값을 주어서 3번째 인덱스는 빈값이고
key값이 있는 값은 맨 뒤로 밀려났다.
역시 마지막 값은 length에 영향을 미치지 않는다.
프로퍼티 할당시 키값을 숫자인 문자열로 넣었을때
const arr2 = []
arr2["100"] = 1;
console.log(arr2.length) //101
당황스럽게도 문자열키가아닌 숫자 키를 사용한것 같은 결과가 나온다
* 가능하지만 사용하지 않는것이 맞다. 책보던 중에 신기해서 정리해봄
✓ 참고 : you don't know js
728x90
반응형
'JavaScript' 카테고리의 다른 글
[Javascript] 자바스크립트의 this (0) | 2020.11.11 |
---|---|
[Javascript] 실행 컨텍스트와 호이스팅, 스코프체인 (0) | 2020.11.03 |
[Javascript] 실행 컨텍스트와 환경정보 (0) | 2020.11.02 |
[ Javascript 모듈화 ] AMD, CommonJs, ES6의 모듈 (0) | 2020.09.12 |
ES6(ECMAScript6) 정리 (0) | 2020.09.05 |