交换两个值的数组解构赋值无法实现,不使用分号(;)
P粉714780768
2023-08-10 14:21:03
<p><br /></p>
<pre class="brush:php;toolbar:false;">let [x, y] = [10, 20] [y, x] = [x, y] console.log(x, y)</pre>
<p>它没有按预期工作,给了我一个错误...</p>
<blockquote>
<p>Uncaught ReferenceError: Cannot access 'y' before initialization</p>
</blockquote>
<pre class="brush:php;toolbar:false;">let [x, y] = [10, 20]; // 在这里使用分号 [y, x] = [x, y] console.log(x, y)</pre>
<p>现在它可以正常工作,请有谁可以解释为什么它现在可以工作...</p>
首先你需要先声明 x 和 y,而且在一行的语句后需要使用分号。
let x, y; [x, y] = [10, 20]; [y, x] = [x, y]; console.log(x, y)
编辑:对不起,你不需要事先声明它们,但是在指令之间要使用分号进行分隔。