ES6 物件的解構賦值

2021-09-08 05:16:21 字數 922 閱讀 6535

物件的解構賦值

解構不僅可以用於陣列,還可以用於物件。

let  = ;

console.log(foo); // aaa

console.log(bar); // bbb

這裡的foo,bar一定要對應。

物件的解構與陣列有乙個重要的不同。陣列的元素是按次序排列的,變數的取值由它的位置決定;而物件的屬性沒有次序,變數必須與屬性同名,才能取到正確的值。

真正被賦值的是後者,而不是前者。

let  = ;

baz // "aaa"

foo // error: foo is not defined

上面**中,foo是匹配的模式,baz才是變數。真正被賦值的是變數baz,而不是模式foo。

與陣列一樣,解構也可以用於巢狀結構的物件。

let obj = 

]};let ] } = obj;

console.log(x) // "hello"

console.log(y) // "world"

物件的解構也可以指定預設值。

var  = {};

x // 3

var = ;

x // 1

y // 5

var = {};

y // 3

var = ;

y // 5

var = {};

msg // "something went wrong"

預設值生效的條件是,物件的屬性值嚴格等於undefined。

var  = ;

x // 3

var = ;

x // null

ES6 物件的解構賦值

es6的解構賦值,在我看來是提供了乙個整體賦值的方案。包括陣列和物件的整體賦值。基本原則如下 let x,y 1,2 x 1 y 2 let foo aaa bar bbb 但是物件的解構賦值,允許給賦值的變數重新命名。物件的重新命名解構 我自己去的名字,便於理解 其實在給物件進行解構賦值的時候,有...

ES6 物件的解構賦值

解構不僅可以用於陣列,還可以用於物件。let foo aaa bar bbb 物件的解構與陣列有乙個重要的不同。陣列的元素是按次序排列的,變數的取值由它的位置決定 而物件的屬性沒有次序,變數必須與屬性同名,才能取到正確的值。let foo aaa bar bbb let baz undefined ...

ES6 物件解構

當從乙個物件中獲取屬性時,會進行這樣操作 const p1 const name p1.name tom shmith const age p1.age 20 const father p1.familly.father jack shmith const mother p1.familly.mot...