ES6全稱是ECMAscript6,其實就是js的第6個版本,由于ES5這個版本中并未更新太多內(nèi)容,ECMA協(xié)會將大部分的內(nèi)容在ES6中更新,之后又宣布隨時可以向協(xié)會提交內(nèi)容,隨時更新;然后,在每年的6月份左右,再統(tǒng)一更新版本,并以每年的年份作為版本號。
使用
雖然目前主流的瀏覽器都已支持ES6的語法,但有時候還是需要考慮某些低版本瀏覽器兼容性的問題(IE8),這時我們就需要引入babel來編譯,轉(zhuǎn)換成es3。
通常使用的方式是webpack+babel的方式進行編譯,當然如果喜歡gulp也不是不行。
基礎(chǔ)語法
變量聲明
let :增加了塊級作用域,聲明時必須賦值。
js中使用var聲明的變量,只存在全局作用域以及局部作用域(即函數(shù)作用域)。
而使用let聲明的變量,是存在塊級作用域的,即代碼塊之間相互獲取變量值。并且let在聲明變量時必須賦值,否則瀏覽器會直接報錯。const :常量,聲明時也必須賦值。
用const聲明的是常量,即在聲明賦值后就不能再改變,否則會報錯。
當然,在聲明類型為對象時,我們可以進行添加刪除屬性。
我們知道js中的數(shù)據(jù)類型分為基礎(chǔ)數(shù)據(jù)類型和復(fù)雜數(shù)據(jù)類型,基礎(chǔ)數(shù)據(jù)存放在堆中,存放的就是值。而對象即復(fù)雜數(shù)據(jù)類型是存放在棧之中,它實際存放的其實是一個地址,我們改變這個對象下的屬性或者方法是并不影響這個地址。但如果你重新將對象賦值給它,改變了地址就會報錯。
字符串
在ES6中,我們可以使用兩個<code>``</code>符號來表示字符串。
可以在<code>``</code>之家寫入變量進行字符串拼接
const app = d
const str = `abc${app}cba`
console.log(str) //abcdcba;
箭頭函數(shù)
在之前我們聲明一個匿名函數(shù)是這樣
function(a){
return a=3;
}
而在ES6中:
a=>{a=3}
具體是這樣:
() => { ... } // 沒有參數(shù)
x => { ... } // 一個參數(shù) 一個標識符
(x, y) => { ... } // 幾個參數(shù)