我尝试使用javascript(node和chrome)进行传播。
感谢@ jonrsharpe,@ Quentin告诉我What are the rules for JavaScript's automatic semicolon insertion (ASI)?解释了分号是必需的,并解释了为什么必须使用分号。
let c, d
[ c, ] = [7, 8]; // <-- semicolon is necessary
[ , d ] = [7, 8] // Otherwise, here: Uncaught SyntaxError: Unexpected token ,
let c, d
[ , d ] = [7, 8]; // <-- semicolon is necessary
[ c, ] = [7, 8] // Otherwise, here: Uncaught SyntaxError: Unexpected token ]
出于好奇,我一直尝试在不使用分号的情况下进行测试并发现此行为:
let c, d
[ c, ] = [3, 4]
[ c, d ] = [5, 6]
console.log(c) //<-- 5
console.log(d) //<-- undefined
什么解释“ d”保持“未定义”? 我希望至少有一些有价值的错误。