1.Object[key]
這一語法主要是為了創(chuàng)建對象時,能夠用其他的變量作為屬性值。
var str="name";
var obj={
[str]: 'jc',
num: 1
};
2.箭頭函數(shù)
箭頭函數(shù)其實就是其他語言中已有的lamda表達(dá)式,但它是可以在函數(shù)定義的時候就綁定其this,可以用于返回一個已經(jīng)綁定this的函數(shù)。
var student={
name: 'jc',
createPrint: function(){
return ()=>console.log(this.name);
}
};
var blue=student.createPrint();
blue(); //jc
3.Array.prototype.find/findIndex方法
可以按條件搜索的方式來查找數(shù)組中第一個滿足條件的元素。
var array=[2,3,4,5];
console.log(array.find(a=>a>=3)); //3
4.展開運(yùn)算符
- 將數(shù)組或可迭代對象拆分為單個的參數(shù):
//es5
var yuan=[3,4,5];
console.log(Math.min.apply(Math,yuan));
//es6
console.log(Math.min(...yuan));
- 將可迭代對象轉(zhuǎn)化為數(shù)組:
var array=[...document.querySelectorAll('div')];
5.字符串模板語法
- 優(yōu)雅地在字符串中插入變量
var red={x:1,y:2};
console.log(`I am ${red.x+red.y}`);
- 書寫多行文本
console.log(`this is a
theme`);
6.函數(shù)默認(rèn)參數(shù)
可以給函數(shù)設(shè)置默認(rèn)參數(shù),包括回調(diào)函數(shù)參數(shù),可以以優(yōu)雅的方式傳入回調(diào)函數(shù)。
//es5
function curry1(callback){
if(typeof callback === 'function'){
callback();
}
}
//es6
function curry2(callback=function(){}){
callback();
}
7.對象解構(gòu)賦值中的const
設(shè)置對象解構(gòu)賦值為const,則每個新的變量都為const,不可以改變其值,如果為對象,則不可改變其引用,這一點要小心處理
const {num}=this.state;
num++; //error