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 } = {}) {
// ...
}