rma*_*een 3 javascript node.js
使用节点v6.9.2运行此代码时会生成错误
var req = {}
['foo', 'bar'].forEach(prop => {
console.log("prop: " + prop)
});
Run Code Online (Sandbox Code Playgroud)
错误是: TypeError: Cannot read property 'forEach' of undefined
那为什么会这样?我正在做的事情似乎没有任何语法上的错误.我注意到,如果我var req = {}在行之后添加一个分号,则错误消失,但我仍然不明白为什么因为我认为只要每个语句在一个单独的行上,半冒号在JavaScript中是可选的.
自动分号插入已经转动
var req = {}
['foo', 'bar']
Run Code Online (Sandbox Code Playgroud)
成
var req = {}['foo', 'bar']
Run Code Online (Sandbox Code Playgroud)
当然{}不包含'bar'属性(因为'foo', 'bar'评估为'bar').
(undefined).forEach(...) 得到评估,然后导致你看到的错误.
如果你依靠ASI,这是常见的做法,以前缀开头的行[]或()用分号:
var req = {}
;['foo', 'bar']
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
368 次 |
| 最近记录: |