Я глубоко смущен поведением JavaScript или консоли Chrome. Может ли кто-нибудь помочь мне понять?
В основном у меня есть следующий код JavaScript, не вложенный внутри какой-либо функции или другой области:
var initial_array = [];
function initialiseArray() {
initial_array = [2, 9, 8, 6, 0, 2, 1];
}
function copyToNewArray() {
var copied_array = [];
console.log("COPIED 1", copied_array);
for (var i = 0; i < initial_array.length; i++) {
var copy = initial_array[i];
copied_array.push(copy);
}
console.log("COPIED 2", copied_array);
}
initialiseArray();
copyToNewArray();
Я ожидал бы COPIED 1
для печати []
- поскольку переменная еще не назначена, но вместо этого она печатает [2, 9, 8, 6, 0, 2, 1]
- то есть значение после того, как оно было назначено.
Почему?
Кстати, если вы заменяете строки 8-11 на initial_array = copied_array
, то RESULTS 1
действительно печатается как []
. Это как-то связано с использованием .push
?