Javascript 数组解构在链接时出错
Javascript array destructuring gives error when chaining
我有以下代码
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}`)
此代码给出以下错误
Uncaught TypeError: Cannot set property '9250' of undefined
我不明白为什么这段代码不起作用。任何解释或更正将不胜感激。下面是码笔link
https://codepen.io/devbkhadka/pen/ExyyEWE?editors=1111
您需要一些分号来防止将方括号用作 属性 访问器,因为 ASI(自动分号插入)在这里不起作用。
如果你把这个写成一行,你会直接看到:
console.log(`min: ${min}`)[hr, min] = integerDivide(min, 60)
换行符不分隔语句,后面是括号。为了克服这个问题,您需要添加分号来分隔语句。
在这里阅读更多内容:What are the rules for JavaScript's automatic semicolon insertion (ASI)?
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}`); // <-- here at least
[hr, min] = integerDivide(min, 60)
console.log (`hr: ${hr}`)
我有以下代码
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}`)
此代码给出以下错误
Uncaught TypeError: Cannot set property '9250' of undefined
我不明白为什么这段代码不起作用。任何解释或更正将不胜感激。下面是码笔link https://codepen.io/devbkhadka/pen/ExyyEWE?editors=1111
您需要一些分号来防止将方括号用作 属性 访问器,因为 ASI(自动分号插入)在这里不起作用。
如果你把这个写成一行,你会直接看到:
console.log(`min: ${min}`)[hr, min] = integerDivide(min, 60)
换行符不分隔语句,后面是括号。为了克服这个问题,您需要添加分号来分隔语句。
在这里阅读更多内容:What are the rules for JavaScript's automatic semicolon insertion (ASI)?
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}`); // <-- here at least
[hr, min] = integerDivide(min, 60)
console.log (`hr: ${hr}`)