运算符

解构运算符
个人理解:就是将整个数组或者对象 传给一个载体,或对象,或函数,那么只需要定义接收者就行了,载体的接收者会自动为期赋值。

解构运算符---用来赋值

//数组类型的
let arr = ['hello', 1, 2];
let [a, b, c] = arr;
console.log(a);//hello
console.log(b);//1
console.log(c);//2


//对象类型的

let obj = {
    name: 'MrD',
    age: 26,
    son: {
        sonname: '大熊',
        sonage: 1
    }
};
let {name, sex, age, son} = obj;
console.log(name ,sex ,age); //MrD
console.log(son); // { sonname: '大熊', sonage: 1 }

解构运算符---用来传参

//数组类型的
let arr = ['hello', 1, 2];
//方法
fn1([a, b, c]) {
    console.log(a);
    console.log(b);
    console.log(c);
}





//对象类型的
let obj = {
    name: 'MrD',
    age: 26,
    son: {
        sonname: '大熊',
        sonage: 1
    }
};
//方法
fn2({a, b, c}) {
    console.log(a);
    console.log(b);
    console.log(c);
}

扩展运算符
扩展运算符用三个点号表示,功能是把数组(或类数组对象)展开成一系列用逗号隔开的值

//方法
fn([a, b, c]) {
    console.log(a);
    console.log(b);
    console.log(c);
}

//数组类型的
let arr = ['hello', 1, 2];
fn(...arr)

rest运算符
rest运算符也是三个点号,不过其功能与扩展运算符恰好相反,把逗号隔开的值序列组合成一个数组

//方法
fn(...args) {
    //主要用于不定参数,所以ES6开始可以不再使用arguments对象
    for (let el of args) {
        console.log(el);
    }
}

fn('hello', 1, 2)
原文地址:https://www.cnblogs.com/dshvv/p/9933717.html