要學好javascript , ECMAScript標準比什麼都強, ESMAScript標準已經用最嚴謹的語言和最完美的角度展現了語言的實質和特性。 理解語言的本質後,你已經從沙堆里挑出了珍珠,能經得起時光的磨礪。 有很多問題在網路上被包裝了太多次,解釋的千奇百怪,但用規範的語言來描述竟是如此簡單 ...
要學好javascript , ECMAScript標準比什麼都強,
ESMAScript標準已經用最嚴謹的語言和最完美的角度展現了語言的實質和特性。
理解語言的本質後,你已經從沙堆里挑出了珍珠,能經得起時光的磨礪。
有很多問題在網路上被包裝了太多次,解釋的千奇百怪,但用規範的語言來描述竟是如此簡單。
什麼是ES6, 剛開始學ES6的時候我以為它就是ECMAScript2015,
然而ES6是一個泛指, 它是指5.1版本後JavaScript的下一代標準,
它涵蓋了ES2015, ES2016, ES2017等。
那ES6語法又是誰提出來的呢?
任何人都可以向標準委員會提案, 要求修改語言標準。一種新的語法從提案變成正式標準,
需要經過五個階段,每個階段的變動都要由TC39委員會批准。
- Stage0: Strawman(展示階段)
- Stage1: Proposal(征求意見階段)
- Stage2: Draft(草案階段)
- Stage3: Candidate(候選階段)
- Stage4: Finished(定案階段)
一個提案只要能進入草案階段,就基本認為其包括在以後的正式標準里,而ES6從開始定製到最後發佈,整整用了15年。
1997年, ECMAScript 1.0 發佈
1998年6月, ECMAScript 2.0 發佈
1999年12月, ECMAScript 3.0 發佈, 這個版本奠定了javascript 語言的基本語法, 在業界得到廣泛支持,
成為通行標準, 直到今天, 初入web前端的學習者學js其實也是學習3.0的語法。
2000年,ECMAScript 4.0開始醞釀, 但是相信大部分本文的讀者沒有聽過ES4, 因為ES4太激進了,對ES3
做了徹底的升級,完全不相容ES3, 這意味著用ES3寫的網頁以後就不能用了, 導致標準委員會的一些成員不願意接受,
所以這個版本最後沒有通過,但是其大部分內容被ES6所繼承, 所以說ES6制定的起點應該是在2000年。
具體是怎麼回事呢?
2007年10月, ECMAScript 4.0草案發佈, 本來預計次年8月發佈正式版本,但是各方對於是否通過這個標準發生了
嚴重分歧, 以Yahoo, Microsoft, Google為首的大公司, 反對對JavaScript的大幅升級,主張小幅改動;以JavaScript創造者
Brendan Eich 為首的Mozilla公司,則堅持當前的草案。
2008年7月, 由於各方分歧太大, ECMA開會決定終止ES4的開發, 將其中涉及現有功能改善的一小部分發佈為ES3.1,
而將其他激進的設想擴大範圍,放入以後的版本,該版本項目代號為Harmony(和諧), 會後不久, ES3.1 就改名為 ES 5了。
2009年12月,ES5.0正式發佈。Harmony 項目則一分為二, 一些較為可行的設想定名為JavaScript.next繼續開發,後來
演變成ES6; 一些不太成熟的設想被視為JavaScript.next.next, 更遠的將來考慮推出。
2011年6月,ES5.1發佈,並且成為ISO國際標準。
2013年3月, ES6草案凍結,不再添加新功能,新的功能設想將放到ES7中。
2013年12月,ES6草案發佈,此後時12個月的討論期,聽取各方意見。
2015年6月,ES6正式通過,成為國際標準。從2000年算起,已經過了15年。
ECMAScript 經歷了這些變故後, 也從語言的角度反應了各大廠商之間的立場差異,但是JavaScript遵守一個JavaScript的原則,
就是所有的版本都要向後相容, web語言的解釋器版本不是由開發者決定的,而是由用戶決定的,所以JavaScript無法向Python, Ruby, Perl
那樣, 發佈一個不向下相容的大版本, 這就是ES4 失敗的根源。
現在各大瀏覽器的最新版本對ES6的支持度越來越高, 如果你想檢查你的各種運行環境對ES6的支持情況,
可以下載阮一峰老師的es-checker。
命令行輸入:$ npm install -g es-checker
$ es-checker
摘抄自 ———— 阮一峰老師的ES6標準入門。