链接时Javascript数组解构会出错

Dev*_*dka 2 javascript syntax ecmascript-6

我有以下代码

const integerDivide = (a, b) => {
  return [Math.floor(a / b), a % b]
}


let sec = 555003,
  min, hr, day;

[min, sec] = integerDivide(sec, 60)
console.log(`sec: ${sec}`)
console.log(`min: ${min}`)
[hr, min] = integerDivide(min, 60)
console.log(`hr: ${hr}`)
Run Code Online (Sandbox Code Playgroud)

此代码给出以下错误

Uncaught TypeError: Cannot set property '9250' of undefined
Run Code Online (Sandbox Code Playgroud)

我不明白为什么这段代码不起作用。任何解释或更正将不胜感激。下面是代码笔链接 https://codepen.io/devbkhadka/pen/ExyyEWE?editors=1111

Nin*_*olz 5

您需要一些分号来防止使用方括号作为属性访问器,因为 ASI(自动分号插入)在这里不起作用。

如果你把这个写成一行,你会直接看到它:

console.log(`min: ${min}`)[hr, min] = integerDivide(min, 60)
Run Code Online (Sandbox Code Playgroud)

换行符不分隔语句,后跟括号。为了克服这个问题,您需要添加分号来分隔语句。

在这里阅读更多内容:JavaScript 的自动分号插入 (ASI) 的规则是什么?

console.log(`min: ${min}`)[hr, min] = integerDivide(min, 60)
Run Code Online (Sandbox Code Playgroud)