美文网首页
解构赋值-ES6初学习

解构赋值-ES6初学习

作者: 程咸菜 | 来源:发表于2017-02-06 11:02 被阅读0次

    解构赋值

    ES6 提供的一种模式。这种操作与之前的 ES5 的赋值是有些区别的。他有数组形式,对象形式,嵌套形式,字符串形式。

    数组形式

    在 ES5 中有这样的一个赋值的操作 var a=1;var b=2;var c=3; 那么在 ES6 中我们就可以这样来写 var [a,b,c] = [1,2,3]; 这两句话 的含义是一样的。这个是数组的解构赋值。数组是一个有顺序的对象结构

    对象形式

    对象的解构赋值,变量名要和 key 值对应相同。

    var {name,age} = {name:"xiancai",gae:"27"};      
    console.log(name);       
    console.log(age);
    

    如果对应的 key 值不相同就会出现 undefined 。对象不是一个按照顺序的数据结构,有时候不会按照顺序解释出现的例句。
    var {age,name} = {name:"xiancai",age:"27"};      
    console.log(name);       
    console.log(age);       
    

    这段代码输出的还是 xiancai 27 所以和顺序没关系,是一个按照 key 值去查找的一个数据方法。

    嵌套形式

    也可以做一些嵌套,比如在数组中嵌套对象,在对象中嵌套数组

    var {a,b,c} ={a:"aaa",b:[1,2,3],c:"ccc"};     
    console.log(a);     
    console.log(b);     
    console.log(c);         
    

    字符串形式

    字符串也是可以进行解构赋值的。而数字和布尔值是不行的。

    var [a,b,c] = "abcdefg";    
    console.log(a);     
    console.log(b);     
    console.log(c);        
    

    但是数字和布尔值就不行了,就会报错。凡是拥有 iterator 接口的都可以进行解构赋值,这个 iterator 叫做遍历器。
    这里有个小例子
    function ajax({url,type,data}){      
        console.log(url);     
        console.log(type);     
        console.log(data);     
    };       
    ajax({url:"localhost",type:"post",data:"name:hello"})        
    

    如果按照 ES5 的写法我们要这么写
    function ajax(box){     
        var  url = box.url;   
        var type = box.type;     
        var data = box.data;        
        console.log(url);     
        console.log(type);     
        console.log(data);     
    };       
    ajax({url:"localhost",type:"post",data:"name:hello"})    
    

    解构赋值大大的简化了过程。

    相关文章

      网友评论

          本文标题:解构赋值-ES6初学习

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