在javascript中对数组文本调用forEach时出错
当我使用节点v6.9.2运行此代码时,会生成一个错误在javascript中对数组文本调用forEach时出错,javascript,node.js,Javascript,Node.js,当我使用节点v6.9.2运行此代码时,会生成一个错误 var req = {} ['foo', 'bar'].forEach(prop => { console.log("prop: " + prop) }); 错误为:TypeError:无法读取未定义的属性“forEach” 为什么会这样?我所做的似乎没有任何语法上的错误。我注意到,如果我在var req={}行之后添加分号,错误就会消失,但我仍然不明白为什么,因为我认为分号在JavaScript中是可选的,只要每个语句都在
var req = {}
['foo', 'bar'].forEach(prop => {
console.log("prop: " + prop)
});
错误为:TypeError:无法读取未定义的属性“forEach”
为什么会这样?我所做的似乎没有任何语法上的错误。我注意到,如果我在
var req={}
行之后添加分号,错误就会消失,但我仍然不明白为什么,因为我认为分号在JavaScript中是可选的,只要每个语句都在单独的一行上。自动分号插入已经启动
var req = {}
['foo', 'bar']
进入
当然,{}
不包含'bar'
属性(因为'foo','bar'
的计算结果为'bar'
)
(未定义).forEach(…)
将被计算,这将导致您看到的错误
如果您依赖ASI,通常的做法是在以
[]
或()
开头的行前面加上分号:
var req = {}
;['foo', 'bar']
节点6.10.3似乎运行良好,只是非常有趣!我不知道ASI,它的传播效果。谢谢
var req = {}
;['foo', 'bar']