JS : Value

버들비·2021년 2월 24일
0

You Don't Know JS

목록 보기
2/2

배열

자바스크립트 배열은 엄격한 타입언어와 달리 문자열, 숫자, 객체, 다른 배열 등 어떠한 타입의 값도 담을 수 있다.

var a = [1,"2",[3]]
a.length // 3
a[0] // 1
a[2][0] // 3

또한 배열의 크기는 미리 정하지 않고 선언할 수 있으며 원하는 값을 추가할 수 있다.

배열 자체는 하나의 객체여서 키/프로퍼티 문자열을 추가할 수 있다. 하지만 배열 length 가 증가하지는 않는다!

var a = []
a[0] = 1;
a['foo'] = 'bar'
a.length // 1
a['foo'] // 'bar'
a.foo // 'bar'

이때 키로 넣어준 문자열이 표준 10진수 숫자로 형변환이 된다면 문자열 키가 아닌 숫자 키를 사용한것 처럼 변해버린다!
(숫자로 적힌 문자열이 암묵적 형변환을 통해 숫자로 바뀌는 것은 종종 버그의 원인이 된다)

var a = []
a["13"] = 42;
a.length // 14

0개의 댓글