当我使用 Node v6.9.2 运行此代码时会生成错误
var req = {}
['foo', 'bar'].forEach(prop => {
console.log("prop: " + prop)
});
错误是:TypeError: Cannot read property 'forEach' of undefined
为什么会这样呢?我正在做的事情似乎没有任何语法错误。我注意到,如果我在后面添加分号var req = {}
行错误消失了,但我仍然不明白为什么,因为我认为分号在 JavaScript 中是可选的,只要每个语句都在单独的行上。
自动分号插入已变成
var req = {}
['foo', 'bar']
into
var req = {}['foo', 'bar']
而且当然{}
不包含'bar'
财产(因为'foo', 'bar'
评估为'bar'
).
(undefined).forEach(...)
进行评估,然后导致您看到的错误。
如果您依赖 ASI,通常的做法是prefix以以下开头的行[]
or ()
带分号:
var req = {}
;['foo', 'bar']
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)