淺談ES6

       15年接觸了CoffeeScript,代碼之簡單,讓我驚訝。以前也寫過javascript,但發現太冗餘了,基本沒有動力繼續寫下去。16年開始接觸React以及React Native,也就正式瞭解了ES6語法,發現它和CoffeeScript很相近,並有了很大的改進。這幾天參考了http://es6-features.org/,對ES6從新簡單的學習,有如下幾點思考。javascript

ES6支持新的特性有:
1. 常量
  常量,這個很少說,大多數語言都有,如c,c++,java,go等。python以前也沒有,PEP8中有部分支持。 加入常量以後,雖然不如以前靈活,但會常量會作類型檢查,同時加快編譯速度。
2. => 函數定義
  =>函數定義, 相似於 CoffeeScript中函數綁定,能夠將javascript中this關鍵詞動態地綁定設定爲當前函數掛在所在的對象上。=>綁定,使得原先函數綁定變得容易。同時因爲ES6中語法中須要用{}()來進行代碼分割,使得代碼相比於CoffeeScript更加清晰,容易閱讀。
3. 模板
  模板,自動支持了模板機制,比以前ES5,不須要額外引入其餘模板引擎。
4. 擴展參數處理
5. 解構賦值
  擴展參數處理,是很是好的,用...來擴展參數,相似於go語法。相對容易理解。另外在函數解構賦值中,也和Go很相近,支持多變量賦值,以及默認參數。
6. 模塊
  是一種抽象。相似於Package或者namespace的概念。
7. 類(最大的改進)
  終於開始支持面向對象編程,支持了繼承,以及靜態函數等相關操做;
8. Iterators 和 Generators
  迭代和生成器,我理解如C++中的Iterator,以及Python中的迭代和生成器。但感受語法仍是有些複雜,但願以後還可以改進。
9. Map/Set/WeakMap/WeakSet
  對數據函數的進一步支持
10.內嵌函數
  提供更多的內部函數封裝,主要用模塊以及面向對象來實現。
11. Promise
  對異步操做進行更好的封裝,在React-Native中已經直接可使用React.
12. 反射機制
  反射機制相似於Go中Reflect,或者typeof 等機制
13. 國際化和本地化支持
  這個很不錯,在其它語言中也有支持。
以及其它

ES6語法使得JS愈來愈容易學習,也具備通用性,我感受比較深的,以上是和其它幾種語法的分析和對比。固然小弟功力尚淺,有哪些不足支持,請你們多多批評指正。java

相關文章
相關標籤/搜索