let [a,b]=[1,'bar'];console.log(a);//1
console.log(b);//
barlet [c,,d]=[2,3,4];
console.log(c);//2
console.log(d);//
4let [f]=[5,6,7];
console.log(f);//5
let [g,h,k]=[8,9]
console.log(g);//8
console.log(h);//
9 console.log(k);//
undefined
//允許設定預設值
let [x=100,y,z=200]=[10,20]
console.log(x);
//10
console.log(y);//
20 console.log(z);//
200
let =;console.log(name);
//reic
console.log(age);//
18let =;
console.log(me);
//eric
console.log(id);//
undefined
let = ;
console.log(baz);
//aaa
let = ;
console.log(f);
//hello
console.log(l);//
world
let = ;
let = ;
console.log(x);//1
console.log(y);//
5 console.log(z);//
5
const [a, b, c, d, e] = 'hello';console.log(a,b,c,d,e);
////
類似陣列的物件都有乙個length屬性
let = 'hello';
console.log(len);
//
//解構賦值時,如果等號右邊是數值和布林值,則會先轉為物件。
//數值和布林值的包裝物件都有tostring屬性,因此變數s都能取到值
let = 123;
s === number.prototype.tostring //
true
let = true
; s === boolean.prototype.tostring //
true
//解構賦值的規則是,只要等號右邊的值不是物件或陣列,就先將其轉為物件。
//由於undefined和null無法轉為物件,所以對它們進行解構賦值,都會報錯
let = undefined; //
typeerror
let = null; //
typeerror
//函式add的引數表面上是乙個陣列,但在傳入引數的那一刻,陣列引數就被解構成變數x和y
function
add([x, y])
add([1, 2]); //3//
函式引數的解構也可以使用預設值。
//函式move的引數是乙個物件,通過對這個物件進行解構,得到變數x和y的值。如果解構失敗,x和y等於預設值
function move( ={})
move(); //
[3, 8]
move(); //
[3, 0]
move({}); //
[0, 0]
move(); //
[0, 0]
//函式move的引數指定預設值,而不是為變數x和y指定預設值,所以會得到與前一種寫法不同的結果。
function move( = )
move(); //
[3, 8]
move(); //
[3, undefined]
move({}); //
[undefined, undefined]
move(); //
[0, 0]
//undefined就會觸發函式引數的預設值。
[1, undefined, 3].map(function(x='yes'));
//[ 1, 'yes', 3 ]
//預設值的應用
function ajax()
ajax();//
/hello get
//在nodejs載入模組裡的應用:指定模組裡的某個方法
//var =require('fs');
//函式的rest引數:把剩餘的引數都包裝到乙個陣列中
//它的作用就是來代替arguments的
//arguments是偽陣列,不能使用array的一些原型方法,但是rest可以
function
add(...args));
}add(1,2,3,4,5);//
1 2 3 4 5
更多詳細知識點,請參考ecmascript 6 入門
。
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 現今的變數宣告語法十分的直接 左邊是乙個變數名,右邊可以是乙個陣列 的表示式或乙個物件 的表示式,等等。...