注意點:
1、等號左右兩邊結構必須一樣
let [a,b] =//typeerror: is not iterable
2、右邊結構語法必須正確。既不是物件,也不是陣列,語法不正確
let =//syntaxerror: unexpected token ,
3、宣告與賦值不能分開
let [a, b] //宣告[a, b] = [1, 2] //
賦值//
syntaxerror: missing initializer in destructuring declaration(解構宣告缺乏初始化)
可以這樣先宣告後賦值
let a, b[a, b] = [1, 2]
let [a, b, ...rest] = [10, 20, 30, 40, 50]console.log(a)
//10
console.log(b) //
20console.log(rest) //
[30,40,50]
變數多時,值為undefined
let [a, b] = [1]console.log(a); //1
console.log(b); //
undefined
變數少時,忽略後面的值
let [a, b] = [1, 2, 3, 4, 5]console.log(a); //1
console.log(b); //2//
後面的值忽略
let [a = 2, b = 7] = [1]console.log(a) //1
console.log(b) //
7
let a = 3, b = 1 //這裡的分號不加會報錯,referenceerror: cannot access 'b' before initialization
[a, b] =[b, a]
console.log(a) //1
console.log(b) //
3
基本賦值
let =console.log(a) //1
console.log(b) //
2
先宣告後賦值
let a, b;( = )
這裡的(...)必須加
let =console.log(c) //1
console.log(d) //
2
與陣列解構類似
let =console.log(a) //1
console.log(b) //
20
let =console.log(c) //1
console.log(d) //
20
好的應用1
好的應用2
let =console.log(rest)
//
var obj = ;object.prototype.b = 2;
//或者
//obj.__proto__.b = 2
const =obj;
console.log(a) //1
console.log(b) //
2
ES6 解構賦值
陣列的解構賦值 let a,b 12,13 let a,b,c d 13,15,16 let a,b c 78,12 23 let x,y 1,3,5 x 1,y 3 let x,y,z a x a,y undefined z let h,b 1,2,3,4 1,2,3,4 預設值 let x tr...
ES6解構賦值
一 基本用法 解構 destructuring 按照一定的模式,從陣列或者物件中提取值,對變數進行賦值。let par1,par2,par3 1,2 console.log par1,par2,par3 1 2 不完全解構時par3對值為undefined 解構賦值允許指定變數對預設值。let pa...
es6解構賦值
coding changes the world accumulating makes yourself 主要從三個方面講述 陣列式的解構賦值 物件式的解構賦值 函式中的解構賦值 preface 現今的變數宣告語法十分的直接 左邊是乙個變數名,右邊可以是乙個陣列 的表示式或乙個物件 的表示式,等等。...