解構賦值
從陣列中提取值,按照對應位置,對變數賦值
只要等號右邊的值不是物件或陣列,就先將其轉為物件。
由於 undefined 和 null 無法轉為物件,
所以對它們進行解構賦值,都會報錯
let [a, b, c] = [1, 2, 3];
只要某種資料結構具有 iterator 介面,都可以採用陣列形式的解構賦值
應用:
注意,es6 內部使用嚴格相等運算子(===
),判斷乙個位置是否有值
所以,只有當乙個陣列成員嚴格等於undefined
,預設值才會生效。
如果預設值是乙個表示式,那麼這個表示式是惰性求值的,即只有在用到的時候,才會求值
此時,字串被轉換成了乙個類似陣列的物件
應用:
如此遍歷 for(let [key, value] of map){}
任何部署了 iterator 介面的物件,都可以用for...of
迴圈遍歷
ECMAScript6 常用解構賦值
一 解構賦值按照一定模式,從陣列和物件中提取值,對變數進行賦值 1.陣列解構let arr 1 2,3 現在要求取出陣列的每一項 傳統的方式 let a arr 0 let b arr 1 let c arr 2 console.log a,b,c 1,2,3 在es6中提供了解構的語法 可以得到陣...
ECMA Script 6 變數的解構賦值
1 陣列的結構和賦值 es6 允許按照一定模式,從陣列和物件中提取值,對變數進行賦值,這被稱為解構 2 物件等可以這麼賦值 3 函式引數的解構賦值 function add x,y add 1,2 3 基本用途 交換變數 a,b b,a 函式返回多個值 類似於陣列 返回乙個陣列 function e...
ECMAScript 6 陣列的解構賦值
模式匹配 只要等號兩邊的模式相同,左邊的變數就會被賦予對應的值。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 third baz let x,y 1,2,3 x 1 y 3...