解構賦值
let obj=;
//變數名==屬性名
let =obj;
console.log(n1, n2);//p1 p2
//變數名!=屬性名
let = obj;
console.log(x1, x2); //p1 p2
物件陣列巢狀
let obj=;
//x=obj.a1[0];
//y=obj.a1[2];
let =obj;
console.log(x, y);
let obj=,n:[1,"2",3,"4"],m:[[1]]};
let ,n:[,...m2]}=obj;
console.log(x1, n, m2); //[1] "1" ["2", 3, "4"]
預設值
//預設值生效的條件是物件的屬性值必須是嚴格等於undefined
let =
console.log(x);//
1let =;
console.log(n);//
12let =;
console.log(n);//
null
//如果結構模式中巢狀的是物件,而且子物件所在的父屬性不存在,就會報錯
let }=;
console.log(b);//uncaught typeerror: cannot destructure property `b` of
'undefined'
or'null'.
附的值不是乙個物件是其他資料型別的值,會預設將其他資料型別轉為物件
let = 1;
console.log(x, y, __proto__);
console.log(object(1));
console.log(object([1, 2, 3]));
let = [1, 2, 3]
console.log(length);//3
為了避免錯誤,不要將{}寫在行首,會被理解為**塊
let a;
=;//js引擎會將理解成乙個**塊
let a;
(=);
console.log(a); //a
null 和 undefined 無法轉為物件,所以物件結果賦值為乙個null和undefined會報錯
let =undefined; //uncaught typeerror: cannot destructure property `p` of
'undefined'
or'null'.
ES6 物件賦值
1.宣告的變數賦值給物件 let name judy let age 18 let obj console.log obj 2.物件中key值的構建 let key name let obj console.log obj.name wayne3.物件比較object.is var obj1 var...
ES6 物件的解構賦值
es6的解構賦值,在我看來是提供了乙個整體賦值的方案。包括陣列和物件的整體賦值。基本原則如下 let x,y 1,2 x 1 y 2 let foo aaa bar bbb 但是物件的解構賦值,允許給賦值的變數重新命名。物件的重新命名解構 我自己去的名字,便於理解 其實在給物件進行解構賦值的時候,有...
ES6 物件的解構賦值
物件的解構賦值 解構不僅可以用於陣列,還可以用於物件。let console.log foo aaa console.log bar bbb這裡的foo,bar一定要對應。物件的解構與陣列有乙個重要的不同。陣列的元素是按次序排列的,變數的取值由它的位置決定 而物件的屬性沒有次序,變數必須與屬性同名,...