解构分配和变量交换 [英] Destructuring assignment and variable swapping

查看:51
本文介绍了解构分配和变量交换的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆