解構賦值的用途

2021-08-14 16:14:42 字數 2804 閱讀 5590

變數的解構賦值用途很多。

(1)交換變數的值

let x =1

;

let y =2

;

[x,

y]=[

y,x];

上面**交換變數xy的值,這樣的寫法不僅簡潔,而且易讀,語義非常清晰。

(2)從函式返回多個值

函式只能返回乙個值,如果要返回多個值,只能將它們放在陣列或物件裡返回。有了解構賦值,取出這些值就非常方便。

// 返回乙個陣列

function

example

()

let [a

,b,c

]=example

();

// 返回乙個物件

function

example

();

}

let

=example

();

(3)函式引數的定義

解構賦值可以方便地將一組引數與變數名對應起來。

// 引數是一組有次序的值

functionf([

x,y,

z])

f([1

,2,3

]);

// 引數是一組無次序的值

functionf()

f

();

(4)提取 json 資料

解構賦值對提取 json 物件中的資料,尤其有用。

let jsondata 

=;

let

=jsondata

;

console

.log(id

,status

,number

);

// 42, "ok", [867, 5309]

上面**可以快速提取 json 資料的值。

(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

如果只想獲取鍵名,或者只想獲取鍵值,可以寫成下面這樣。

// 獲取鍵名

for

(let

[key

]of map

)

// 獲取鍵值

for

(let

[,value

]of map

)

(7)輸入模組的指定方法

載入模組時,往往需要指定輸入哪些方法。解構賦值使得輸入語句非常清晰。

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 注意 只有當乙...