ECMA Script 6新特性之解構賦值

2022-01-15 03:27:14 字數 1515 閱讀 5193

1.基本概念用法

1.1解構賦值:es6允許按照一定模式,從陣列和物件中提取值,對變數進行賦值。  

var a = 1;

var b = 2;

var c = 3;

/*上述賦值語句用解構賦值為

*/var [a,b,c] = [1,2,3];

1.2上述的解構發生在等號左右模式相同的情況下,如果等號兩邊的模式不一致,解構可能會不成功;

/*

當變數多於值個數或無值時,解構失敗

*/var [foo] =;

var [a,b] = [1];

/*

當變數少於值個數,不完全解構

*/let [a,b] = [1,2,3]; //

可解構,a = 1, b = 2

let [a,[b],c] = [1,[2,3],4] //

可解構,a = 1, b = 2,c=4

/*

等號右邊不是陣列時,報錯,下述**全部都會報錯

*/let [foo] = 10;

let [foo] = true

;let [foo] = null

;let [foo] = {};

1.3解構賦值可指定預設值:

var [foo = true] = ;  //

foo = true;

var [a,b = 2] = [1]; //

a = 1;b = 2;

另需注意,指定預設值的陣列成員必須是嚴格等於undefined,否則預設值不會生效;

/**/

var [x = 1] = [undefined]; //

x =1

var [x = 1] = [null]; //

x=null

var [x ,y= 1]= [2]; //

y = 1

如果預設值是乙個表示式,那麼這個表示式是惰性求值的,即只有在用到的時候,才會求值;

function

f()

let [x = f()] = [1];

/*上述**中因為x能取到值,因此f()函式不會執行

*/

預設值可以引用解構賦值的其他變數,但該變數必須已經宣告;

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

/*最後乙個賦值,x用到預設值y時,y還沒有宣告。因此報錯

*/

ECMAScript6 新特性 「正則的擴充套件」

es6 允許regexp建構函式接受正規表示式作為引數。第二個引數指定修飾符,如果存在則使用指定的修飾符。var regexp new regexp xyz i,ig console.log regexp.flags gi字串物件的4個使用正規表示式的方法 match replace search ...

九十一 ECMAScript6之Promise

1.與promise 依賴處理,十分不易於維護 用promise鏈式處理,1.then 為成功後走的分支,resolve為具體要求做的事事 2.catch為失敗的分支 3.finally,不管是否成功,都會走此分支 4.all,把多個promise例項包裝成乙個新的promise例項 promise...

EcmaScript 6 箭頭函式

es5 var total values.reduce function a,b 0 es6 var total values.reduce a,b a b,0 箭頭即乙個函式的簡化 es5 confetti btn click function event es6 confetti btn cli...