JS中的解構賦值(ES6)


解構賦值是對賦值運算符的擴展。解構賦值主要分為數組的解構和對象的解構。

1、數組解構 按照順序解構,賦值給前面對應下標的變量

var [a,b,c]=[1,2,3];
console.log(a,b,c);//1,2,3
  • 交換,交換讓數組中兩個數據交換數值變得非常方便,比如冒泡排序中的數據交換
        var a=3;
        var b=4;
        [a,b]=[b,a];  
//冒泡

      [arr[i],[arr[i+1]]]=[arr[i+1],arr[i]];

  • 函數中解構賦值時,變量設置了初始值0,如果給一個賦值,b就是3,如果沒有給賦值,b就是初始值0
        var [a,b=0]=[3];
        console.log(a,b);
        function fn([a,b=0]){
            console.log(a,b);
        }
        fn([4,3]);   

2、對象解構賦值時按照屬性名解構,與順序無關,沒有該屬性是無法解構賦值的

        var {a,b,c}={b:1,a:2};
        console.log(a,b);    
  • 對象解構必須按照結構解構,如果解構時屬性名有重復,可以在屬性名后:新名稱來解構,后面有:就查不到了
        var {a,b:{a:a1}}={a:5,b:{a:6}};
        console.log(a,a1);    
        let {p:[x,{y}]}={p:["Hello",{y:"World"}],};
        console.log(x,y);
        var obj={
            a:1,
            b:{
                a:2,
                b:{
                    a:3,
                    b:{
                        a:4
                    }
                }
            }
        }
        let {a,b:{a:a1,b:{a:a2,b:{a:a3}}}}=obj;
        console.log(a,a1,a2,a3);

3、字符串解構,str有length屬性

        var str="abcdef";
        let {length}=str;
        console.log(length);

4、在對象中如果方法中有this這種方法不能被解構(3的方法)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM