背景介紹
ECMAScript是JavaScript語言的國際標(biāo)準(zhǔn),JavaScript是ECMAScript的實現(xiàn)。也許傳統(tǒng)的前端開發(fā)者們沒有對JS有太多的升級認(rèn)知,對于傳統(tǒng)前端而言,JS就是一個操作DOM的腳本語言,僅此而已。
但是隨著時代的發(fā)展,技術(shù)的變革進步,Java都5,6,7,8,9......的不斷升級了(雖然各種新特性在實際項目中也是很少被使用,因為往往實際項目中都是項目進度優(yōu)先于技術(shù)升級,可能會有很多人沒耐心慢慢琢磨新東西,反正老東西也能實現(xiàn)一模一樣的功能,而且美其名曰:“穩(wěn)定”,“可靠”)
當(dāng)然如果追求“穩(wěn)定”,“可靠”,我就不會寫下這篇文章,看客們估計也不會點進來。我一直以來的觀點是沒有不穩(wěn)定新技術(shù),只有不穩(wěn)定的邏輯。不寫代碼就不會出錯,寫代碼越少出錯概率就越小,所有新技術(shù)都是為了更少代碼,更多功能,更強拓展而生。ES6其實已經(jīng)不是新東西,ES7也是箭在弦上,后面我還會寫ES7的重點一覽。
當(dāng)然,我是一個不喜歡重復(fù)造輪子的人,浩瀚的互聯(lián)網(wǎng)上已經(jīng)有了關(guān)于ES6太多的文章,但是這些文章,有的只言片語快速略過,有的長篇大論巨細(xì)無遺。而這一篇文章,決定做一個平衡,用最少的語言文字,描述關(guān)于ES6最重要,最有意義,最常用的功能。當(dāng)然,除了背景介紹這一段。
特性重點
一、let、const
【重點】let聲明的變量只在所在代碼塊內(nèi)生效,const聲明常量。ES6中塊級作用域的出現(xiàn),極大程度地規(guī)范了語言,每一對{}里面的變量使用let聲明,就如同后端編譯語言的變量聲明一樣,不再全局化。另外使用let,未聲明就使用的這種做法也就不行了,很好很規(guī)范~
二、變量的解構(gòu)賦值
例如可以var[a, b, c] = [1,2,3];但是個人感覺單純定義使用這樣的語法糖意義不是很大,該特性更多的用處是在遍歷Map結(jié)構(gòu)的時候,可以如下:
for( let [ key,value] of map ) { console.log ( key +':'+ value);}
三、字符串拓展
.contains():返回布爾值,表示是否找到了參數(shù)字符串
.startsWith():返回布爾值,表示參數(shù)字符串是否在源字符串的頭部
.endsWith():返回布爾值,表示參數(shù)字符串是否在源字符串的尾部
console.log( `${x} + ${y} = ${x+y}` ) // 模板字符串,一對反引號,變量使用${}
四、數(shù)值的擴展
ES6將全局方法parseInt()和parseFloat(),移植到Number對象上面,行為完全保持不變
Number.isInteger()用來判斷一個值是否為整數(shù)。需要注意的是,在JavaScript內(nèi)部,整數(shù)和浮點數(shù)是同樣的儲存方法,所以3和3.0被視為同一個值。
Math.trunc()方法用于去除一個數(shù)的小數(shù)部分,返回整數(shù)部分
五、數(shù)組的拓展
Array.from()用于將兩類對象轉(zhuǎn)為真正的數(shù)組:類似數(shù)組的對象(array-like object)和可遍歷(iterable)的對象,其中包括ES6新增的Set和Map結(jié)構(gòu)。
【重點】find()和findIndex(),意義較大,如下:
[1,5,10,15].find( function(value, index, arr){ return value > 9; } ); // 返回10
[1,5,10,15].findIndex( function(value, index, arr){ returnvalue > 9; } ); // 返回2
fill()使用給定值,填充一個數(shù)組:
newArray(3).fill(7)
【重點】ES6提供三個新的方法:entries(),keys()和values()用于遍歷數(shù)組。它們都返回一個遍歷器,可以用for...of循環(huán)進行遍歷,唯一的區(qū)別是keys()是對鍵名的遍歷、values()是對鍵值的遍歷,entries()是對鍵值對的遍歷
for( let index of ['a','b'].keys() ) {console.log(index);}
for( let elem of ['a','b'].values() ) {console.log(elem);}
for( let[index, elem] of ['a','b'].entries() ) {console.log(index, elem);}
總結(jié)
后續(xù)的進階篇已經(jīng)完成,如下傳送門:
本文基于阮一峰的ECMAScript 6 系列文章和眾多網(wǎng)絡(luò)散文資料匯聚。在此給出原文鏈接,上面給出的重點一覽,都可以在下面鏈接找到更為詳盡的講解:
如果有任何的批評建議,BUG反饋,問題反饋,或是想法建議,幫助支持,個人都十分歡迎,我個人的聯(lián)系方式如下:)
作者:cheneyxu
郵箱:457299596@qq.com
QQ:457299596
關(guān)于:XServer官網(wǎng)