Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript中对数组文本调用forEach时出错_Javascript_Node.js - Fatal编程技术网

在javascript中对数组文本调用forEach时出错

在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中是可选的,只要每个语句都在

当我使用节点v6.9.2运行此代码时,会生成一个错误

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']