簡介
ES6, 全稱 ECMAScript 6.0 ,是 JavaScript 的下一個(gè)版本標(biāo)準(zhǔn),2015.06 發(fā)版。
ES6 主要是為了解決 ES5 的先天不足,比如 JavaScript 里并沒有類的概念,但是目前瀏覽器的 JavaScript 是 ES5 版本,大多數(shù)高版本的瀏覽器也支持 ES6,不過只實(shí)現(xiàn)了 ES6 的部分特性和功能。
一、let const
let:
1、只在let命令所在的代碼內(nèi)有效
2、不存在變量提升
const
const聲明變量后無法改變(const不是保證值不變,只是保證變量存儲(chǔ)的內(nèi)存地址不變)
二、解構(gòu)賦值
方便了復(fù)雜對(duì)象中數(shù)據(jù)字段獲取。
數(shù)組結(jié)構(gòu)
let [a, b, c] = [1, 2, 3];
// a = 1
// b = 2
// c = 3
對(duì)象結(jié)構(gòu)
let { foo, bar } = { foo: 'aaa', bar: 'bbb' };
// foo = 'aaa'
// bar = 'bbb'
三、字符串拓展方法
includes():返回布爾值,判斷是否找到參數(shù)字符串。
startsWith():返回布爾值,判斷參數(shù)字符串是否在原字符串的頭部。
endsWith():返回布爾值,判斷參數(shù)字符串是否在原字符串的尾部。
let string = "apple,banana,orange";
string.includes("banana"); // true
string.startsWith("apple"); // true
string.endsWith("apple"); // false
string.startsWith("banana",6) // true
四、對(duì)象
1、拓展運(yùn)算符(...)用于取出參數(shù)對(duì)象所有可遍歷屬性然后拷貝到當(dāng)前對(duì)象。
2、Object.assign(target, source_1, ···)
用于將源對(duì)象的所有可枚舉屬性復(fù)制到目標(biāo)對(duì)象中。
let target = {a: 1};
let object2 = {b: 2};
let object3 = {c: 3};
Object.assign(target,object2,object3);
// 第一個(gè)參數(shù)是目標(biāo)對(duì)象,后面的參數(shù)是源對(duì)象
target; // {a: 1, b: 2, c: 3
Object.is(value1, value2)
用來比較兩個(gè)值是否嚴(yán)格相等,與(===)基本類似。
五、箭頭函數(shù)
箭頭函數(shù)提供了一種更加簡潔的函數(shù)書寫方式?;菊Z法是:
基本用法
var f = v => v;
//等價(jià)于
var f = function(a){
return a;
}
f(1); //1
箭頭函數(shù)體中的 this 對(duì)象,是定義函數(shù)時(shí)的對(duì)象,而不是使用函數(shù)時(shí)的對(duì)象。
function fn(){
setTimeout(()=>{
// 定義時(shí),this 綁定的是 fn 中的 this 對(duì)象
console.log(this.a);
},0)
}
var a = 20;
// fn 的 this 對(duì)象為 {a: 19}
fn.call({a: 18}); // 18
六、export 與 import
基本用法
模塊導(dǎo)入導(dǎo)出各種類型的變量,如字符串,數(shù)值,函數(shù),類。
導(dǎo)出的函數(shù)聲明與類聲明必須要有名稱(export default 命令另外考慮)。
不僅能導(dǎo)出聲明還能導(dǎo)出引用(例如函數(shù))。
export 命令可以出現(xiàn)在模塊的任何位置,但必需處于模塊頂層。
import 命令會(huì)提升到整個(gè)模塊的頭部,首先執(zhí)行。