1、變數的解構賦值
let
[a, b, c]=[
1,2,
3];
上面**表示,可以從陣列中提取值,按照對應位置,對變數賦值。
注意:es6 內部使用嚴格相等運算子(===),判斷乙個位置是否有值。所以,只有當乙個陣列成員嚴格等於undefined,預設值才會生效。
2、物件的解構賦值
解構不僅可以用於陣列,還可以用於物件。
let=;
foo // "aaa"
bar // "bbb"
物件的解構與陣列有乙個重要的不同。陣列的元素是按次序排列的,變數的取值由它的位置決定;而物件的屬性沒有次序,變數必須與屬性同名,才能取到正確的值。
let=;
foo // "aaa"
bar // "bbb"
let=
;baz // undefined
上面**的第乙個例子,等號左邊的兩個變數的次序,與等號右邊兩個同名屬性的次序不一致,但是對取值完全沒有影響。第二個例子的變數沒有對應的同名屬性,導致取不到值,最後等於undefined。
如果解構失敗,變數的值等於undefined。
3、字串的解構賦值
字串也可以解構賦值。這是因為此時,字串被轉換成了乙個類似陣列的物件。
const
[a, b, c, d, e]
='hello'
;a // "h"
b // "e"
c // "l"
d // "l"
e // "o"
類似陣列的物件都有乙個length屬性,因此還可以對這個屬性解構賦值。
let
='hello'
;len // 5
@ cc 變數解構賦值
1.從陣列物件中提取值,對變數進行賦值,被稱為結構。2.false,1,nan undefind null轉化為物件後不具備iterator介面,本身不具備iterator介面。3.set結構也可使用陣列的解構賦值,只需要資料機構具備iterator 迭代器 介面,都可以採用陣列形式的解構賦值 ar...
變數的解構賦值
從陣列和物件中提取值,對變數進行賦值,這被稱為解構 本質上,這種寫法屬於 模式匹配 只要等號兩邊的模式相同,左邊的變數就會被賦予對應的值 例子 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重點 不是只有陣列才可以解構...