解構賦值時,如果等號右邊是數值和布林值,則會先轉為物件。
let = 123;
s === number.prototype.tostring // true
let = true;
s === boolean.prototype.tostring // true
上面**中,數值和布林值的包裝物件都有tostring
屬性,因此變數s
都能取到值。
解構賦值的規則是,只要等號右邊的值不是物件或陣列,就先將其轉為物件。由於undefined
和null
無法轉為物件,所以對它們進行解構賦值,都會報錯。
let = undefined; // typeerror
let = null; // typeerror
變數的解構賦值
從陣列和物件中提取值,對變數進行賦值,這被稱為解構 本質上,這種寫法屬於 模式匹配 只要等號兩邊的模式相同,左邊的變數就會被賦予對應的值 例子 let a,b,c 1,2,3 let foo,bar baz 1,2 3 foo 1 bar 2 baz 3 let third foo bar baz ...
變數的解構賦值
什麼是解構 es6允許按照一定的模式,從陣列或者物件中提取值,然後賦值給相應變數,此為解構。解構分為完全解構和不完全解構,前者要求一一對應,後者可以是等號左邊只匹配等號右邊的一部分。解構不成功會返回undefined。let foo alert foo undefined重點 不是只有陣列才可以解構...
變數的解構賦值
1 變數的解構賦值 let a,b,c 1,2,3 上面 表示,可以從陣列中提取值,按照對應位置,對變數賦值。注意 es6 內部使用嚴格相等運算子 判斷乙個位置是否有值。所以,只有當乙個陣列成員嚴格等於undefined,預設值才會生效。2 物件的解構賦值 解構不僅可以用於陣列,還可以用於物件。le...