陣列
let a =1;
let b =2;
let c =3;
let[a, b, c]=[
1,2,
3];
set結構:
let
[x, y, z]
=new
set(
['a'
,'b'
,'c'])
;x // "a"
允許預設值
let
[x =1]
=[undefined]
;x // 1
let[x =1]
=[null];
x // null //null !== undefined
如果預設值是乙個表示式,那麼這個表示式是惰性求值的,即只有在用到的時候,才會求值
functionf(
)let
[x =f(
)]=[
1];//1 ,後面為undefined,才求值
物件
let=;
foo // "aaa"
bar // "bbb"
let=
;baz // undefined,**變數要與屬性同名,不用按次序排列**
如果變數名與屬性名不一致,必須寫成下面這樣
let=;
baz // "aaa"
物件的解構賦值可以取到繼承的屬性。
如果要將乙個已經宣告的變數用於解構賦值必須在賦值語句外加小括號()
字串也可以解構賦值。這是因為此時,字串被轉換成了乙個類似陣列的物件。
const
[a, b, c, d, e]
='hello'
;a // "h"
b // "e"
c // "l"
d // "l"
e // "o"
let=
'hello'
;len // 5
只要有可能,就不要在模式中放置圓括號
用途
(1)交換變數的值
let x =1;
let y =2;
[x, y]
=[y, x]
;
(2)從函式返回多個值
// 返回乙個陣列
function
example()
let[a, b, c]
=example()
;// 返回乙個物件
function
example()
;}let=
example()
;
(3)函式引數的定義
解構賦值可以方便地將一組引數與變數名對應起來。
(4)提取 json 資料
解構賦值對提取 json 物件中的資料,尤其有用。
(5)函式引數的預設值
(6)遍歷 map 結構
const map =
newmap()
;map.
set(
'first'
,'hello');
map.
set(
'second'
,'world');
for(
let[key, value]
of map)
// first is hello
// second is world
(7)輸入模組的指定方法
const
=require
("source-map"
);
Js變數的解構賦值
解構 從陣列和物件中提取值,對變數進行賦值。1.陣列的元素是按次序排列的,變數的取值由它的位置決定 模式匹配 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...
變數的解構賦值
從陣列和物件中提取值,對變數進行賦值,這被稱為解構 本質上,這種寫法屬於 模式匹配 只要等號兩邊的模式相同,左邊的變數就會被賦予對應的值 例子 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重點 不是只有陣列才可以解構...