美文网首页
es6-变量的解构赋值

es6-变量的解构赋值

作者: ysdyyy | 来源:发表于2020-01-19 17:02 被阅读0次

    1:数组的解构赋值

    基本用法

    ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构。

    let [a,b,c] = [1,2,3];// 1 2 3
    let [a,[[b],c]] = [1,[[2],3]];// 1 2 3
    let [,,a] = [1,2,3];// 3
    

    本质上,这种写法属于模式匹配。

    let [x,y] = [1,2,3];// 1 2
    

    上述例子为不完全解构。
    事实上,只要某种数据结构有Iterator接口,都可以采用数组形式的结构赋值。

    2:对象的解构赋值

    let {a,b} = {b:1,a:2};
    a // 1
    b // 2
    let { first: f, last: l } = {first: 'hello', last: 'last' };
    f// hello
    l// last
    

    3:字符串的解构赋值

    const [a, b, c, d, e] = 'hello';
    

    4:数值和布尔值的解构赋值

    let {toString: s} = 123;
    s === Number.prototype.toString // true
    
    let {toString: s} = true;
    s === Boolean.prototype.toString // true
    

    解构赋值的规则是:只要等到右边的值不是对象或数组,就将其先转为对象。由于undefined和null不能转为对象,所以对他们进行解构赋值,就会报错

    5:函数对象的解构赋值

    function add([x,y]){
        return x + y;
    }
    add([1,2]); //3
    

    6:圆括号问题

    7:用途

    • 交换变量的值
    • 从函数返回多个值
    • 函数参数的定义
    • 提取JSON数据
    • 函数参数的默认值
    • 遍历map结构
    • 引入模块的制定方法

    参考:http://es6.ruanyifeng.com/#docs/destructuring

    相关文章

      网友评论

          本文标题:es6-变量的解构赋值

          本文链接:https://www.haomeiwen.com/subject/kkgrzctx.html