带有方括号而不是括号的JavaScript数组`push` - 没有错误?

时间:2018-01-14 23:18:30

标签: javascript arrays

我偶然做到了这一点......

var numbers = [1, 2, 3, 4];
numbers.push[5];

为什么没有错误信息?

push需要括号,而不是方括号。这只是一个简单的错字。我没有足够关注我正在做的事情......但为什么没有错误信息?

据我所知,数字数组没有以任何方式修改。它只是......没有。

1 个答案:

答案 0 :(得分:9)

numbers.push只是一个函数,但您正在尝试从其中找到位于键5的属性,该属性将评估为undefined

function test() {
  console.log("test");
}


// test[5] evaluates to `undefined` and does nothing
console.log(test[5]);

// We can even manually set this without messing up the function
test[5] = "foo";

// outputs "foo"
console.log(test[5]);

// outputs our expected value "test"
test();