变量的解构赋值

PPG007 ... 2021-12-26 About 1 min

# 变量的解构赋值

# 数组的解构赋值

解构:按照一定模式,从数组和对象中提取值,对变量进行赋值。

只要等号两边模式相同,就能够解构成功;如果解构失败,变量就会被赋值为 undefined。

解构赋值在左边括号中可以指定默认值:

let [x, y = 'b'] = ['a', undefined]
1

如果赋值为 undefined 则默认值仍然会生效,如果赋值为 null 则默认值失效,赋值为 null。默认值也可以引用其他变量但是这个变量必须已经声明。

# 对象的解构赋值

对象解构属性没有次序,变量与属性同名就能取到正确的值。

let {account, password, account: username} = {account: '1658', password: '123456'}
1

如果变量名与属性名不一致要使用 ${右边已有的属性名}: ${变量名} 的形式。

# 字符串的解构赋值

字符串也可以解构赋值,此时字符串被转换成了一个类似数组的对象:

const [a, b, c, d, e] = 'hello'
const {length: len} = 'hello'// len = 5
1
2

# 数值和布尔值的解构赋值

解构赋值时,如果等号右边是数值和布尔值,则会先转为对象,只要等号右边的值不是对象或数组就先把它转为对象,由于 undefined 和 null 无法转为对象,所以对它们进行解构赋值都会报错。

# 函数参数的解构赋值

function add([x, y]) {
  console.log(x + y);
}
function move({x = 0, y = 0} = {}) {
  console.log([x ,y]);
}
1
2
3
4
5
6
Last update: December 26, 2021 02:53
Contributors: PPG007