Node中Array解构的奇怪行为

时间:2017-07-13 16:35:06

标签: javascript node.js ecmascript-6

我遇到以下情况:undefined错误:

...
(str) => {
  const [first, second] = str.split('.');
  // throws an undefined error
  // (can't find a .next of undefined? -- this may not be related)
}
...

所以,我转换为以下内容并且有效:

...
(str) => {
  const temp = str.split('.');
  const first = temp[0];
  const second = temp[1];
}
...

奇怪的是,如果我将const转换为let,它就有效:

...
(str) => {
  let temp = str.split('.');
  let [first, second] = temp;
}
...

节点v6.9.1

1 个答案:

答案 0 :(得分: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时,错误不会发生。由于没有提供这样的例子,我认为这个问题具有误导性,并且它描述的现象实际上并没有发生。