Js變數的解構賦值

2022-07-11 02:03:07 字數 1741 閱讀 3622

解構:從陣列和物件中提取值,對變數進行賦值。

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] = [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 //

2.預設值

// 當乙個陣列成員嚴格等於undefined,預設值才會生效

let [foo = true] = ;

foo // true

let [x, y = 'b'] = ['a']; // x='a', y='b'

let [x, y = 'b'] = ['a', undefined]; // x='a', y='b'

// 預設值可以引用解構賦值的其他變數,但該變數必須已經宣告。

let [x = 1, y = x] = ; // x=1; y=1

let [x = 1, y = x] = [2]; // x=2; y=2

let [x = 1, y = x] = [1, 2]; // x=1; y=2

let [x = y, y = 1] = ; // referenceerror: y is not defined

資源搜尋**大全

廣州vi設計公司

1.物件的屬性沒有次序,變數必須與屬性同名,才能取到正確的值。物件的解構賦值可以取到繼承的屬性。

let  = ;

foo // "aaa"

bar // "bbb"

let = ;

baz // undefined

// 例一

let = math;

// 例二

const = console;

log('hello') // hello

//如果變數名與屬性名不一致,必須寫成下面這樣。

let = ;

baz // "aaa"

let obj = ;

let = obj;

f // 'hello'

l // 'world'

2.預設值。預設值生效的條件是,物件的屬性值嚴格等於undefined。

var  = {};

x // 3

var = ;

x // 1

y // 5

var = {};

y // 3

var = ;

y // 5

var = {};

msg // "something went wrong"

變數解構賦值

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重點 不是只有陣列才可以解構...