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
如果預設值是乙個表示式,那麼這個表示式是惰性求值的,即只有在用到的時候,才會求值;
functionf()
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...