ECMAScript6語法重點(一)

2022-08-24 15:15:10 字數 3757 閱讀 1263

一. let和const

①let宣告的變數只在它的塊作用域有效(括起來)

②let不能重複宣告同一變數

③const宣告的常量不能改(但物件可以加屬性)

④const也有塊作用域概念

⑤const宣告時必須賦值

二. 解構賦值(左右一 一對應賦值,主要是陣列和物件兩種)

①陣列:

若解構賦值左右沒配對上則為undefined

使用場景:

變數交換 [a,b] = [b,a];

函式fn返回值賦給變數 [a,b] = fn( );

let a,b;

[a,b]=f();

console.log(a,b);

//1 2

}

fn返回多個值 [a, , ,b] = fn( );(逗號中間佔乙個數)

let a,b,c;

[a,,,b]=f();

console.log(a,b);

//1 4

}

不知道fn返回多少個值,我只關心某乙個 [a, ,...b] = fn( );(...b是陣列)

let a,b,c;

[a,,...b]=f();

console.log(a,b);

//1 [3,4,5]兩逗號之間佔乙個數

}

②物件:

賦值可以覆蓋預設值,key相等則value相等

;

let =o;

console.log(p,q);

//42 true

}

使用場景:

巢狀賦值

]

} let ]}=metadata;

console.log(estitle,cntitle);

//abc test

}

三.正則擴充套件

新增特性:建構函式的變化  正則方法的擴充套件  u修飾符  y修飾符  s修飾符

/.test('a')); //

false

console.log(/\u/u.test('a')); //

true

//使用u修飾符後,所有量詞都會正確識別大於碼點大於0xffff的unicode字元

}

四.字串擴充套件

新增特性:unicode表示法  遍歷介面  模板字串  新增方法

,$`;

console.log(m);

//i am list,hello world 模板字串

}

五.數值擴充套件(math物件很多方法移植到number物件上)

新增特性:新增方法  方法調整

六.陣列擴充套件

新增特性:array.from  array.of  copywithin  find/findindex  entries/keys/values  includes

); console.log(array.from([1,3,5],function(item)));//

[2,6,10] 可以當map用}

for(let value of ['1','c','ks'].values())

for(let [index,value] of ['1','c','ks'].entries())

}));//

4 找到乙個就不找了

console.log([1,2,3,4,5,6].findindex(function(item)));//

3 返回下標

}

七.函式擴充套件

新增特性:引數預設值  rest引數  擴充套件運算子  箭頭函式  this繫結  尾呼叫

test('hello');//

hello world

test('hello','kill');//

hello kill

} test2('kill');//

kill kill 作用域

} }

test3(1,2,3,4,'a');//

1 2 3 4 a}

function

fx(x)

fx(123)//

123 尾呼叫,代替遞迴

}

八.物件擴充套件

新增特性:簡潔表示法  屬性表示式  擴充套件運算子  新增方法

;

let es6=;

console.log(es5,es6);//

let es5_method=

};let es6_method=

};console.log(es5_method.hello(),es6_method.hello());};

let es6_obj=

console.log(es5_obj,es6_obj);//

},));//

拷貝let test=;

for(let [key,value] of object.entries(test))

}

九.symbol(這種資料型別提供乙個獨一無二的值)

; console.log(obj);

//for

(let [key,value] of object.entries(obj))

object.getownpropertysymbols(obj).foreach(

function

(item))

reflect.ownkeys(obj).foreach(

function

(item))

}

十.資料結構

set用法  map用法  weakset用法  weakmap用法

let arr=[1,2,3,1,'2'];

let list2=new

set(arr);

console.log(list2);//}

list.clear();

console.log(list);

//{}}

for(let value of list.values())

for(let [key,value] of list.entries())

list.foreach(

function(item))//

add delete clear has

} 456

} console.log(map.size);//

2 console.log(map.delete('a'),map);//

console.log(map.clear(),map);//{}}

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...

ECMAScript6掃盲筆記 一

ecma組織推出的ecmascript是乙個標準 協議 js是協議的實現。ecmascript簡稱ecma或es。目前使用最多的是es5.1,es6正式推出是在2015年。就醬 es6 es2015 相容性 es6 es2015 支援 ie10 chrome firefox 移動端 nodejs。和...

ECMAScript6 常用解構賦值

一 解構賦值按照一定模式,從陣列和物件中提取值,對變數進行賦值 1.陣列解構let arr 1 2,3 現在要求取出陣列的每一項 傳統的方式 let a arr 0 let b arr 1 let c arr 2 console.log a,b,c 1,2,3 在es6中提供了解構的語法 可以得到陣...