一、ES6解构赋值
1.数组解构赋值
数组结构赋值
let a=1,b=2,c=3
let [a,b,c]=[1,2,3]
2.定义默认值
let [a,b=3]=[4]
3.对象解构赋值
let {a,b}={a:5,b:6}
let obj = {
p: [
'Hello',
{ y: 'World' }
]
};
let { p: [x, { y }] } = obj;
var {a,b:{a:a1}}={a:5,b:{a:6}};
console.log(a,a1);
(1)对象解构赋值是按照属性名解构,和顺序无关
(2)没有该属性是无法解构赋值
(3)对象解构必须按照结构解构
(4)如果解构是属性名有重复,可以在属性名使用:新名称来解构
4.字符串的解构赋值
let [a,b,c,d,e]="abcde"
let {length : len} = 'hello'
5.数值和布尔值的解构赋值
let {toString: s} = 123;
let {toString: s} = true;
解构赋值的规则是,只要等号右边的值不是对象或数组,就先将其转为对象。由于undefined和null无法转为对象,所以对它们进行解构赋值,都会报错。
6.函数参数的解构赋值
function add([x, y]){
return x + y;
}
add([1, 2]);
使用解构赋值让函数具有默认值
function move({x = 0, y = 0} = {}) {
return [x,