2014-04-29 2 views

답변

6

대괄호 표기법을 사용하여 속성에 액세스하려고 할 때마다 표현식의 값은 문자열으로 변환됩니다. 따라서 "a"[false]은 실제로 "a"['false']이고 "a"[0]은 실제로 "a"['0']입니다. 두 속성 이름은

0==false에서 false은 참으로 0있는 으로 변환됩니다 .. 분명히 매우 다릅니다. 환언


: Number(false)String(false), 따라서 비록 0 == false, "a"[0] !== "a"[false] 두 개의 상이한 값을 생성하고.

3

문자열 "a"은 첫 번째 문자 만 0입니다. 이유 인 0가 falsy 같이

0 == false

true,하지만 그들은 같은 유형이 아닌, 그리고 그들은 모두 falsy을 평가하는 경우에도 인덱스로 false을 통과하는 것은 그것을 수 0을하지 않는 0 === falsefalse입니다 그것의입니다 undefined

0

JavaScript 개체는 0 인덱스 만 있습니다.

그래서

"a"[0] //'a' 
"a"[1] //undefined 
"a"[false] //undefined 
관련 문제