美文网首页React技术栈知识点总结
ES6 第二章 变量的解构赋值

ES6 第二章 变量的解构赋值

作者: 滨赫 | 来源:发表于2019-07-08 14:49 被阅读0次

    第二章  变量的解构赋值

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

    2.只要某种数据结构具有 Iterator 接口(后面会讲),都可以采用数组形式的解构赋值。

    3.如果等号右边不是数组(严格的说不可解构)将会报错

    4.对于set结构可以解构

    (let[x,y,z]=newSet(['a','b','c']);x=a)

    5.对象的解构赋值 :对象的解构与数组有一个重要的不同。数组的元素是按次序排列的,变量的取值由它的位置决定;而对象的属性没有次序,变量必须与属性同名,才能取到正确的值。

    let{foo,bar}={foo:'aaa',bar:'bbb'};

    对象的解构赋值是下面形式的简写

    let{foo:foo,bar:bar}={foo:'aaa',bar:'bbb'};

    6.解构赋值允许指定默认值。ES6 内部使用严格相等运算符(===),判断一个位置是否有值。所以,只有当一个数组成员严格等于undefined,默认值才会生效。

    7.如果默认值是一个表达式,那么这个表达式是惰性求值的,即只有在用到的时候,才会求值。

    8.默认值可以引用解构赋值的其他变量,但该变量必须已经声明。

    9.与数组一样,解构也可以用于嵌套结构的对象。

    10.对象的解构也可以指定默认值。默认值生效的条件是,对象的属性值严格等于undefined。

    11.用途:

    变量的互换:let x=1;let y=2;[x,y]=[y,x];

    从函数返回多个值:function example(){return[1,2,3];} let[a,b,c]=example();

    function example(){return{foo:1,bar:2};} let{foo,bar}=example();

    函数参数的定义

    // 参数是一组有次序的值

    functionf([x,y,z]){...}f([1,2,3]);

    // 参数是一组无次序的值

    functionf({x,y,z}){...}f({z:3,y:2,x:1});

    提取 JSON 数据

    letjsonData={

    id:42,status:"OK",data:[867,5309]

    };

    let{id,status,data:number}=jsonData;

    console.log(id,status,number);

    // 42, "OK", [867, 5309]

    函数参数的默认值

    jQuery.ajax=function(

    url,{async=true,

    beforeSend=function(){},

    cache=true,

    complete=function(){},

    crossDomain=false

    ,global=true, 

    // ... more config}={})

    // ... do stuff

    };

    遍历 Map 结构

    const map=newMap();

    map.set('first','hello');

    map.set('second','world');

    for(let[key,value]of map){console.log(key+" is "+value);}

    // first is hello

    // second is world

    输入模块的指定方法

    const{SourceMapConsumer,SourceNode}=require("source-map");

    相关文章

      网友评论

        本文标题:ES6 第二章 变量的解构赋值

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