Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.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 节点中数组解构的奇怪行为_Javascript_Node.js_Ecmascript 6 - Fatal编程技术网

Javascript 节点中数组解构的奇怪行为

Javascript 节点中数组解构的奇怪行为,javascript,node.js,ecmascript-6,Javascript,Node.js,Ecmascript 6,我遇到过以下情况:抛出未定义的错误: 因此,我将其转换为以下内容: ... (str) => { const temp = str.split('.'); const first = temp[0]; const second = temp[1]; } ... ... (str) => { let temp = str.split('.'); let [first, second] = temp; } ... 奇怪的是,如果我将常量转换为let,它会工作: .

我遇到过以下情况:抛出未定义的错误:

因此,我将其转换为以下内容:

...
(str) => {
  const temp = str.split('.');
  const first = temp[0];
  const second = temp[1];
}
...
...
(str) => {
  let temp = str.split('.');
  let [first, second] = temp;
}
...
奇怪的是,如果我将常量转换为let,它会工作:

...
(str) => {
  const temp = str.split('.');
  const first = temp[0];
  const second = temp[1];
}
...
...
(str) => {
  let temp = str.split('.');
  let [first, second] = temp;
}
...
节点v6.9.1

这工作正常 在节点上测试:

6.0.0 6.9.0 6.9.1 6.9.5 6.11.1 7.0.0 7.10.1 8.0.0 8.1.4 请参阅GitHub上的项目:

见Travis上的测试结果:


原始海报多次被要求提供显示这种行为的实际数据示例,但没有这样做。我和其他人特别要求提供节点版本和输入示例,当const更改为let时,哪些节点会发生错误,哪些节点不会发生错误。由于没有提供这样的例子,我会认为这个问题是误导性的,它描述的事实并没有发生。

什么节点版本?它适用于节点v8.x.node v6.9.1。在什么情况下它会抛出未定义的异常?它为const而不是let抛出异常的输入是什么?我刚刚用节点v6.5.0和v6.10.0进行了测试,它也适用于这些情况。是的,我们在应用程序之外做了大量测试,它似乎可以工作。同样,我们也看到了这种变化,并选择了传统的数组访问器语法。我将在我们的应用程序中记录一个会话以供审阅。。。