ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring)
1.数组的解构赋值
(‘模式匹配’)
const F4 = [‘小沈阳’, ‘刘能’, ‘赵四’, ‘宋小宝’];
let [xiao, liu, zhao, song] = F4;
console.log(xiao); //小沈阳
console.log(liu); //刘能
console.log(zhao); //赵四
console.log(song); //宋小宝
解构赋值允许指定默认值
let [x,y=‘b’]=[‘a’,undefined];
console.log(x); //a
console.log(y); //b
2.对象的结构赋值
对象的解构与数组有一个重要的不同。数组的元素是按次序排列的,变量的取值由他的位置决定;而对象的属性没有次序,变量必须与属性同名,才能取到正确的值。
const ben = {
name: ‘赵本山’,
age: ‘不详’,
xiaopin: function() {
console.log(‘我可以演小品’);
}
}
let {
name,
age,
xiaopin
} = ben;
console.log(name);
console.log(age);
console.log(xiaopin);
xiaopin();
3.字符串解构赋值
const [a,b,c,d,e]=‘hello’;
console.log(a); //h
console.log(b); //e
console.log©; //l
console.log(d); //l
console.log(e); //o
length属性
let {length:len}=‘hello’
console.log(len); //5
4.数值和布尔值的解构赋值
let {toString: s} = 123;
s === Number.prototype.toString // true
let {toString: s} = true;
s === Boolean.prototype.toString // true
5.函数参数解构赋值
function add([x, y]){
return x + y;
}
add([1, 2]); // 3