解构分配和变量交换 [英] Destructuring assignment and variable swapping
本文介绍了解构分配和变量交换的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
JavaScript允许交换变量:
Javascript allows swapping of variables:
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
当使用变量交换代替非结构化分配时,尝试交换变量会失败:
When using variable swapping in lieu with destructured assignment, trying to swap variables breaks down:
var a, b
[a, b] = [1, 2] // a = 1, b = 2
[a, b] = [b, a] // TypeError: Cannot set property '2' of undefined
那是为什么?
推荐答案
如果您决定省略分号(没有判断力,我也更喜欢这样做),请不要忘记在以数组文字开头的行前加上;
.有时候,分号插入确实很重要,因为当您希望或期望分号插入时可能不会发生.
If you decide to omit semicolons (no judgement, I prefer it that way too), don't forget to prefix lines beginning with array literals with ;
. Occasionally, semicolon insertion does matter, because it might not occur when you want or expect it to.
var a, b
;[a, b] = [1, 2]
;[a, b] = [b, a]
console.log(a, b)
这篇关于解构分配和变量交换的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文