1崔步、變量聲明
ES6 新增四種聲明變量指令 let 菲茬, const 铺呵, import 和 class
let聲明塊級作用域裹驰,且不會再有聲明提前了
2、字符串
新增模板字符串片挂,用反引號 ` 包裹幻林,其中允許插入簡單的js表達式,也可以換行書寫
let str =`aaa
bbb
ccc`
let name = 'user';
// $后面的花括號里的字符串會被js解析器認為是JavaScript語句
`添加${name}成功音念!`
// "添加user成功沪饺!"
新增字符串遍歷接口
for (let key of 'name') {
console.log(key)
}
// "n"
// "a"
// "m"
// "e"
3、數(shù)組
新增擴展運算符(...)可把一個可遍歷的對象闷愤,轉(zhuǎn)化為逗號分隔的數(shù)列
console.log(...[1,2,3]);
//1 2 3
新增數(shù)組API Array.from整葡、Array.prototype.find、Array.prototype.includes
Array.from用于將可遍歷的對象轉(zhuǎn)化為數(shù)組
function fun(){
console.log(Array.from(arguments))
}
fun(1,2)
//[1,2]
Array.prototype.find用來查找數(shù)組中符合要求的第一個元素讥脐,返回符合要求的元素
[1,5,3,4].find( item => {
return item>3;
});
//5
Array.prototype.includes用來判斷數(shù)組中是否含有某個值遭居,有返回true,否則返回false
[3,4,5].includes(5); // true
[3,4,5].includes(8); // false
4旬渠、函數(shù)
ES6中函數(shù)主要是擁有書寫方式俱萍、參數(shù)、拓展運算符
箭頭函數(shù)已在上一篇文章中介紹箭頭函數(shù)
函數(shù)參數(shù)默認值設(shè)置
let log = (x, y = 'name') => console.log(x, y)
5坟漱、對象
當(dāng)屬性名為變量名鼠次,值為變量值時,可以直接只寫變量芋齿,方法同理
let name = 'Jack';
let obj = { name } //等同于let obj = { name : name }
對象屬性名也可以使用表達式
ES6對象新增API
Object.assign(targetObj, obj1, obj2...)用于對象的合并腥寇,如果有重復(fù)的屬性名,后來的會覆蓋之前的
let targetObj = { mid : 1, name : '張三'};
let sourceObj = { id : 2, name : '李四' ,address : '小白街5號' };
Object.assign(targetObj, sourceObj);
// { mid : 1, name : '李四', id : 2, address : '小白街5號' }
Object.is判斷兩個值是否相等
需要注意的是NaN等于NaN觅捆,+0不等于-0赦役,跟全等判斷的時候剛好相反
Object.is(+0, -0) // false
Object.is(NaN, NaN) // true
6、Symbol
ES6中新引入的一種數(shù)據(jù)類型栅炒,表示獨一無二的值
通常在為了保證不會與對象的其它屬性產(chǎn)生沖突時使用
let symbol = Symbol();
angular.forEach(allMessages,messages => {
angular.forEach(messages, msg => {
//only show one message
//atomicNotifyService.error(msg, 3000, symbol);
//show all message
atomicNotifyService.error(msg, 3000, msg);
});
});
解構(gòu)掂摔、promise、class等將在下一章中介紹