繁体   English   中英

解构赋值和变量交换

[英]Destructuring assignment and variable swapping

Javascript允许交换变量:

var x = 1
var y = 2

[x, y] = [y, x] // y = 1 , x = 2

和结构化的任务:

var a, b
[a, b] = [1, 2]

log(a) // 1
log(b) // 2

当使用变量交换代替析构化赋值时,尝试交换变量会分解:

var a, b
[a, b] = [1, 2] // a = 1, b = 2

[a, b] = [b, a] // TypeError: Cannot set property '2' of undefined

这是为什么?

如果你决定省略分号(没有判断,我也更喜欢它),不要忘记用数组文字开头的行作为前缀; 有时,分号插入确实很重要,因为它可能在您想要或期望它时不会发生。

 var a, b ;[a, b] = [1, 2] ;[a, b] = [b, a] console.log(a, b) 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM