各種情況的解構+預設值情況
let
[a,b,c]=[
3,4,
5]//a=3 b=4 c=5
(巢狀模式也適用,只要可以對應)
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
let[head,
...tail]=[
1,2,
3,4]
;head // 1
tail // [2, 3, 4]
let[x, y,
...z]=[
'a']
;x // "a"
y // undefined
z //
let
=;
變數與屬性同名,才可以取到正確的值
const
[a, b, c, d, e]
='hello'
;a // "h"
b // "e"
c // "l"
d // "l"
e // "o
//陣列對應字串中內容
let=
'hello'
;len // 5
//對length 屬性進行解構
- 數值和布林值的解構賦值
let
=123
;s === number.prototype.tostring // true
let=
true
;s === boolean.prototype.tostring // true
//s為tostring函式
****理解:**將數值和布林值轉換為物件,然後將物件的方法解析給tostring
詳細解析參考**:
function
add(
[x, y]
)add([
1,2]
);// 3
變數解構賦值
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重點 不是只有陣列才可以解構...