【发布时间】:2013-05-15 21:56:50
【问题描述】:
var a = [1, 2, 3, 4];
var b = [10, 20, 30, 40];
console.log([a, b].length)
[a, b].some(function(x) {
x.push(x.shift())
});
今天这段代码导致我非常惊讶
[a,b].some(function(x){ x.push(x.shift()) });
^
TypeError: Cannot call method 'some' of undefined
很明显,JavaScript 的“自动分号插入”在这里没有按预期工作。但为什么呢?
我知道您可能会建议在任何地方使用; 来避免类似的情况,但问题不在于使用; 是否更好。我很想知道这里到底发生了什么?
【问题讨论】:
-
查找自动分号插入规则:es5.github.io/#x7.9
-
老实说,我认为实际答案在上面的链接中,而不是在下面发布的答案中。
标签: javascript arrays syntax automatic-semicolon-insertion