本文详细介绍 JavaScript 中的解构赋值语法,涵盖数组与字符串的解构、对象属性的匹配与重命名、不完全解构的处理方式(包括跳过值与剩余操作符),以及如何利用解构赋值高效实现变量交换。

1、数组解构
let [a, b, c] = [1,2,3]
console.log(a, b, c) // 1 2 3
除了数组类型外,任何可迭代对象均支持解构操作,例如字符串类型同样适用。
let [first, second] = "he"
console.log(first, second) // h e
2、对象解构
当赋值右侧为对象时,左侧需使用花括号包裹,并以逗号分隔的变量名进行声明。
let {a, b, c} = {a:1, b:2, c:3}
console.log(a,b,c) // 1 2 3
左侧声明的变量名必须与对象中的属性名保持一致;若无法对应,左侧变量将被赋值为undefined。示例如下:
let {a,b, d} = {a:1, b:2, c:3}
console.log(a,b,d) // 1 2 undefined
若变量名与属性名不一致,可使用冒号作为分隔符,将右侧的属性名映射给左侧的变量名。
具体示例:
let {a,b, c:d} = {a:1, b:2, c:3}
console.log(a,b,d) // 1 2 3
3、不完全解构
解构赋值时,左侧变量的数量无需与右侧数组元素的个数完全相等。
(1)若左侧变量数量多于右侧元素,多余的变量将被赋值为 undefined;
let [a, b, c] = [1, 2]
console.log(a, b, c) // 1 2 undefined
(2)若右侧元素数量多于左侧变量,多余的值将被直接忽略;
let [a, b, c] = [1, 2, 3, 4]
console.log(a, b, c) // 1 2 3
(3)左侧可通过逗号跳过某些特定值;
let [a, , c] = [1, 2, 3, 4]
console.log(a, c) // 1 3
(4)右侧多余的值可通过剩余操作符(...)收集至一个变量中。
let [a, b, ...c] = [1, 2, 3, 4]
console.log(a, b, c) // 1 2 [3, 4]
4、利用解构赋值实现变量交换
let a = 1, b=2;
[a, b] = [b, a]
console.log(a) //2
console.log(b) //1
至此,关于Javascript 解构赋值的详细介绍已完毕。如需了解更多Javascript 解构赋值相关内容,请查阅本站过往文章或继续浏览后续文章。感谢大家的支持!