Если длина передается в квадратной скобке для обозначения массива. Он возвращает первый элемент. В чем заключается основная логика?Массив и объекты в javascript
var foo= [];
foo['0'] = 'hello';
foo[2] = {'fun': true};
foo[length];
Если длина передается в квадратной скобке для обозначения массива. Он возвращает первый элемент. В чем заключается основная логика?Массив и объекты в javascript
var foo= [];
foo['0'] = 'hello';
foo[2] = {'fun': true};
foo[length];
Если вы используете этот код в браузере, это потому, что window
объект (который является глобальным объектом) имеет length
property, который является число просмотра ребенок контекстов (плавающие фреймы и такие), что у него есть , Это 0
, если их нет (что часто бывает). Все свойства объекта window
являются глобальными, поэтому length
сам по себе является length
по адресу window
, поэтому foo[length]
- foo[0]
, что составляет "hello"
.
Это length
не имеет отношения к вашему массиву foo
. Длина вашего массива foo
равна foo.length
. Если вы использовали его в своей последней строке, вы получили бы undefined
, потому что в этот момент foo.length
будет 3
, и ваш массив не имеет записи на foo[3]
.
'foo [length]' в глобальном контексте окна браузера совпадает с 'foo [window.length]'. Согласно документации, 'window.length' возвращает" количество кадров (либо , либо