Возможный дубликат:
Является ли консоль JavaScript Chrome ленивой относительно оценки массивов?
Откройте инструменты разработчика Chrome и введите:
var a = [];console.log(a);a.push(1);console.log(a);
Вы ожидаете, что это выведет что-то вроде
[]
[1]
Но вместо этого он выводит
[1]
[1]
Поведение одинаково для
var a = [];console.log(a);a[0] = 1;console.log(a);
Может ли кто-нибудь объяснить это поведение?
Запуск Chrome в OS X. То же поведение на 32-битной Windows 7.
EDIT: поведение одинаково независимо от того, находятся ли операторы в одной строке или нет. Я просто предоставил их по одной строке, чтобы было легко протестировать.
Ввод
var a = [];
console.log(a);
a.push(1);
console.log(a);
в файле, тогда его выполнение дает то же поведение.
EDIT x 2 Смотрите: http://jsfiddle.net/9N4A6/, если вы не хотите, чтобы файл проверялся.