ES6 解構賦值

2022-09-07 03:36:09 字數 2688 閱讀 1038

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 現今的變數宣告語法十分的直接 左邊是乙個變數名,右邊可以是乙個陣列 的表示式或乙個物件 的表示式,等等。...