1、字符串的结构赋值:原因在于字符串被转换成类似数组的对象
<script>
const [a,b] = '你好';
console.log(a)//你
</script>
字符串类似数组,将数组的值赋值给变量
2、字符串作为类似数组的对象,数组对象中存在一些属性:length--可以用于接收
<script>
let {length : len} = '你好';
console.log(len)//2
</script>
3、数值和布尔值的解构赋值---类似对象-先将数值和布尔值转化为对象
数值相当于Number 对象,布尔值相当于Boolean 对象====>这些对象里面的属性都可以取得
<script>
let {toString: a} = 123;
console.log(a === Number.prototype.toString) // true
let {toString: b} = true;
console.log(b === Boolean.prototype.toString) // true
</script>
4、解构赋值的规则是,只要等号右边的值不是对象或数组,就先将其转为对象。由于undefined
和null
无法转为对象,所以对它们进行解构赋值,都会报错
5、函数参数
的解构
也可以使用默认值