es中允許按照一定格式從陣列,物件值提取值,對變數進行賦值,這就是解構(destructuring)
1 let [a,b,c]=[1,10,100]解構不成功,相應的變數為undefined2 console.log(a,b,c)//
1 10 1003//
等式兩邊"模式"進行匹配,從而進行賦值
4 let [i,[[[j]],k]]=[1,[[[2]],3]]//
這種看看就好,知道這樣也可以執行就行
5 console.log(i,j,k)//
1 2 3
67 let [,,x]=[1,2,3]
8 console.log(x)//
3
1 let [i1,i2]=部分解構成功2 console.log(i1,i2)//
undefined undefined
3 let [i3,i4]=[10]
4 console.log(i3,i4)//
10 undefined
1 let [i5,i6]=[1,2,3]等式右邊不是可遍歷的結構,那麼將報錯2 console.log(i5,i6)//
1 2
1 let [i7,i8]=1 //解構賦值允許指定預設值1 is not iterable
2 let [i9] =true
//true is not iterable
1 let [i10,i11='hi']=[100]注意這種情況2 console.log(i10,i11)//
100 'hi'
1物件的解構賦值//let [i111=i12,i12=10]=//報錯,i111=i12 此時i12還未申明2//
而:3 let [i13=i14,i14]=[1,2]
4 console.log(i13,i14)
1 let =執行結果:2console.log(foo,bar)3//
但其實上面解構賦值是下面的縮寫
4 let =
5console.log(foo1,bar1)6//
如果繼續變換
7 let =8//
console.log(foo2,bar2)//報錯
9 console.log(name,age)//
正確寫法
10//
即foo2是模式,name才是賦值的變數
解構賦值的幾大應用:
1.交換變數
1 let a10=10,b100=100;2.函式返回中取出多個值2 [a10,b100]=[b100,a10]
3 console.log(a10,b100)//
100 10
13.提取json資料function
test10()
4function
test100()9}
10 let [j1,j2,j3]=test10()
11 console.log(j1,j2,j3)//
1 2 3
12 let =test100()
13 console.log(namet,aget) //
1參考阮一峰ecmascript入門function
getjson()7}
100 "hello blue" 110
ES6 二 解構賦值
從陣列和物件中提取值,對變數進行賦值,這被稱為解構 1 從函式返回多個值 let a,b 1,2 a,b 2,1 a 2 b 1 2 接收從函式返回的多個值 函式只能返回乙個值,想返回多個需要返回乙個物件或陣列,用解構賦值取值非常方便 function exam let a,b,c exam a 1...
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...