这是代码
var numberArray = [0, 1]
(function() {
numberArray.push(2)
function nestedFunction() {
numberArray.push(3)
function anotherNestedFunction() {
numberArray.push(4)
}
console.log(numberArray)
}
})()
我期望值为
numberArray
的[0,1,2,3,4]
,但出现此错误:TypeError
:[0,1]
不是函数 最佳答案
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中的每个语句之后始终使用分号(
;
)始终是一个好习惯。