1、数组的解构:(提取数组中的数据) “匹配模式”
ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring)。
let [a,b,c]=[100,2,3];
console.log(a,b,c); // 100 2 3
2、对象的解构:
对象的解构要求:变量名与对象的属性名保持一致。
let obj = {
name: 'jack',
sex: '男',
age: '12'
}
let{name,age,sex}=obj;//完全解析
console.log(name,age,sex);
let{name}=obj;//不完全解析
console.log(name);
属性的重命名:
let {
name: n
} = obj; //属性的重命名
console.log(n); //jake
3、字符串解构:
{
let arr = "hello";
let [a, b, c, d, e] = arr;
console.log(a, b, c, d, e);
}
参数解构:
function show2({username}){
console.log(username);
}
let obj={username:'小明',age:'18',sex:'男'};
show2(obj);
解构的默认值:
function show({uName='小明',age}){
console.log(uName,age);//小明
}
show({
// uName:"小红",
age:'18'
})
回调函数:
function show(num,fn){
if(num>10){
fn(100);
}else{
fn(0);
}
}
show(20,function(data){
console.log(data);//输出100
});
function show2(num,fn){
return fn;
}
(show2(20,function(data){
console.log(data) //100
}))(100);
函数的扩展:
//es5中参数的默认
function fn1(x,y){
if(y==undefined){
y=0;
}
console.log(x+y);
}
fn1(10);
//参数的默认
function fn(name='小白',age=20){
console.log(name,age);//小白 18
}
fn(undefined,18);