變數的解構賦值用途很多。
(1)交換變數的值
上面**交換變數let x =1
;
let y =2
;
[x,
y]=[
y,x];
x
和y
的值,這樣的寫法不僅簡潔,而且易讀,語義非常清晰。
(2)從函式返回多個值
函式只能返回乙個值,如果要返回多個值,只能將它們放在陣列或物件裡返回。有了解構賦值,取出這些值就非常方便。
(3)函式引數的定義// 返回乙個陣列
function
example
()
let [a
,b,c
]=example
();
// 返回乙個物件
function
example
();
}
let
=example
();
解構賦值可以方便地將一組引數與變數名對應起來。
(4)提取 json 資料// 引數是一組有次序的值
functionf([
x,y,
z])
f([1
,2,3
]);
// 引數是一組無次序的值
functionf()
f
();
解構賦值對提取 json 物件中的資料,尤其有用。
上面**可以快速提取 json 資料的值。let jsondata
=;
let
=jsondata
;
console
.log(id
,status
,number
);
// 42, "ok", [867, 5309]
(5)函式引數的預設值
指定引數的預設值,就避免了在函式體內部再寫jquery
.ajax
=function
(url
,,
cache
=true
,
complete
=function
(){},
crossdomain
=false
,
global
=true
,
// ... more config
})
;
var foo = config.foo || 'default foo';
這樣的語句。
(6)遍歷 map 結構
任何部署了 iterator 介面的物件,都可以用for...of
迴圈遍歷。map 結構原生支援 iterator 介面,配合變數的解構賦值,獲取鍵名和鍵值就非常方便。
如果只想獲取鍵名,或者只想獲取鍵值,可以寫成下面這樣。const
map
=new
map();
map
.set
('first'
,'hello'
);
map
.set
('second'
,'world'
);
for
(let
[key
,value
]of map
)
// first is hello
// second is world
(7)輸入模組的指定方法// 獲取鍵名
for
(let
[key
]of map
)
// 獲取鍵值
for
(let
[,value
]of map
)
載入模組時,往往需要指定輸入哪些方法。解構賦值使得輸入語句非常清晰。
const
=require
("source-map"
);
變數的解構賦值用途
1.交換變數的值 let x 1 let y 2 x,y y,x 2.從函式返回多個值 函式只能返回乙個值,如果要返回多個值,只能將他們放在陣列或物件裡返回。有了解構賦值,取出這些值就非常方便。返回乙個陣列 function example let a,b,c example 返回乙個物件 func...
變數的解構賦值用途
let x 1 let y 2 x,y y,x 上面 交換變數x和y的值,這樣的寫法不僅簡潔,而且易讀,語義非常清晰。函式只能返回乙個值,如果要返回多個值,只能將它們放在陣列或物件裡返回。有了解構賦值,取出這些值就非常方便。返回乙個陣列 function example let a,b,c exam...
變數的解構賦值及用途
一 陣列的解構賦值 1 基本用法 完全解構 let a 1 let b 2 let c 3 可以寫成 let a,b,c 1,2,3 不完全解構 等號左邊的模式,只匹配一部分的等號右邊的陣列,解構依然成功 2 預設值 解構解析允許指定預設值 如 let x,y b a x a y b 注意 只有當乙...