ES6數(shù)據(jù)解構

ES5的數(shù)據(jù)獲取

let obj = {
  name:'張三',
  age:5,
}

在ES5當中,如果你想要獲取obj對象當中的name屬性的值和age屬性的值,一般常用的方法如下

let obj = {
  name:'張三',
  age:5,
}
let name = obj.name;
let age = obj.age;

這樣獲取數(shù)據(jù)不但代碼寫的多了,而且都是一些重復的代碼,在ES6當中,我們有了新的獲取方式

ES6當中的數(shù)據(jù)獲取方式——解構賦值

同樣是一個對象

let obj = {
  name:'張三',
  age:5
}
let {name,age} = obj;
console.log(name); //張三
console.log(age); // 5

在面對比較復雜的對象時,也能表現(xiàn)良好

        let obj = {
            name:'張三',
            age:5,
            data:{
                fields:{
                    name:"名字",
                    classNO:"班級編號",
                    className:"班級名稱"
                }
            }
        }

        let {data:{ fields}} = obj;
        console.log(fields) //輸出fields對象包含的數(shù)據(jù)

根據(jù)type來獲取數(shù)據(jù)

        let obj = {
            name:'張三',
            age:5,
            data:{
                fields:{
                    name:"名字",
                    classNO:"班級編號",
                    className:"班級名稱"
                }
            }
        }
        //為變量指定接收那些數(shù)據(jù)
        let {name:name,age:age} = obj;
        console.log(name,age); //輸出 張三 5

數(shù)組解構

        let color = ["red","blue","greed","black","sky"];

        let {name:name,age:age} = obj;
        let [firstColor,...restColors] = color;
        console.log(firstColor); //red
        console.log(restColors); //["blue","greed","black","sky"]
  • 剩余項
    數(shù)組解構有個與函數(shù)的剩余參數(shù)類似的、名為剩余項( rest items )的概
    念,它使用" ..." 語法來將剩余的項目賦值給一個指定的變量

混合解構

        let obj = {
            name:'張三',
            age:5,
            data:{
                fields:{
                    name:"名字",
                    classNO:"班級編號",
                    className:"班級名稱"
                }
            },
            color:["red","blue","greed","black","sky"]
        }
        let {data:{fields},color:[firstColor,...restColors]} = obj
        console.log(fields); //fields的數(shù)據(jù)
        console.log(firstColor);// red
        console.log(restColors); //["blue","greed","black","sky"]
// options 上的屬性表示附加參數(shù)
function setCookie(name, value, options) {
       options = options || {};
       let secure = options.secure,
       path = options.path,
       domain = options.domain,
       expires = options.expires;
       // 設置 cookie 的代碼
}
//可以改寫為:對options進行解構并賦予默認值
function setCookie(name, value, { secure, path, domain, expires } = {}) {
// ...
}
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容