var numberArray = [0, 1]
(function() {
эквивалентно
var numberArray = [0, 1] (function() {
Вот где возникает ошибка.
Чтобы решить проблему, поместите ;
после объявления массива, который механизм JavaScript будет рассматривать обе строки как отдельное утверждение:
var numberArray = [0, 1];
(function() {
numberArray.push(2);
function nestedFunction() {
numberArray.push(3);
function anotherNestedFunction() {
numberArray.push(4);
}
anotherNestedFunction();
console.log(numberArray);
}
nestedFunction();
})();
Чтобы игнорировать все эти неожиданные проблемы, всегда полезно использовать точки с запятой (;
) после каждого оператора в JavaScript.