解構:從陣列和物件中提取值,對變數進行賦值。
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重點 不是只有陣列才可以解構...