如何看待 ECMAScript 2018 規範?
ECMAScript 2018 Language Specification
draft 階段,什麼都還沒確定,莫要急著看待。
倒不如看看有哪些提案已經完成了 https://github.com/tc39/proposals
目前來看,能進入 ES2018 的完成狀態的提案(stage 4) 只有一個 Lifting template literal restriction ,感覺作用不大,很尷尬。
還好離正式發布還有幾個月,心急的大佬可以去幫助 stage 3 的提案進入 stage 4,給 ES2018 新增一些亮點。
現在已經是 11 月份了,看了一眼 tc39/proposals,還是太慢了
有人抱怨前端發展太快,es 確實很快,但是規範發布太慢了。
自 1999 年發布 es3 後,es4 經過 10 年的坎坷最終還是被拋棄。10 年後的 2009 年 es5 發布,正是 JavaScript 正在騰飛之年。
- 2008 年 chrome 發布、 V8 發布、IE 8 發布
- 2009 年 nodejs 發布
- 2010 年 npm 發布
- ……
2015 年發布了 es6(es2015),我覺得這應該算是 JavaScript 最大最重要的一個版本了。
大家都以為 es 快速發展的時代來臨了,越來越多的特性會飛快的加入 es 規範,而且每年都會有一個重大的 es 版本。但是事實並非如此,es6 是唯一的一個大版本。
我們看看大家的期待,我們用Google 搜索一下
以及淘寶前端團隊的文章
文章寫於 2015 年底,也就是 es6 發布元年。但是直到今天(2017-11-09)為止,decorators 依然還在 stage 2。如果不出意外,2018 依然不會包含 decorators。
但是 who cares,我們有 babel。
我在另一個回答中 瀏覽器直接支持ES6了,還需要編譯么? 也提到了。我們在 React 中使用最多的語法:
class LoggingButton extends React.Component {
// 事件綁定
handleClick = () =&> {
console.log("this is:", this);
}
render() {
return (
&
);
}
}
這個語法使用到的 public class fields syntax 目前也還在 Stage 2。但是對於很多 React 開發者來說,都已經使用一年多了。
最後回歸正題,如何看待 es 2018 呢?who cares。
ES2018 有一個比較尷尬的地方,就是 Proxy 特性沒有辦法像 ES6 的 class、Promise,或者 ES 2018 的 decorator 一樣,利用 babel 做 transpile 和 polyfill 的方式基於 ES5 實現。要想完整實現 Proxy,必須等瀏覽器更新。
所以 ES2018 這個版本真正落地(nodejs 除外),可能會是一個比較拖拉的過程。尤其是考慮到現在移動端各種容器泛濫的情況。
PS:
犯了個大錯誤,Proxy 是 ES2015 spec 里就提出來的特性,只不過一直沒能實現而已。特此更正。
強答一波,扯點題外的。
以前沒看過es規範,隨便翻了翻,找到了generator.prototype.return。不得不說文檔做的真心好,關鍵詞高亮、選中高亮、查找引用,這樣的偽碼我是服氣。
另外,同樣是對generator的描述,規範確實比mdn來的精準詳細得多,關鍵是還讓普通人能看懂。
每年一更,但是自從 ES6沒看到什麼亮點。無法就是小打小鬧加一些不重要的小特性,或是把某些stage 0 1 2 3 特性加入 stage 4。
對了,我有 babel,我不 care 什麼 ECMAScript 201x
ES 每年一更。這對於自學能力差的從業人員來說有巨大心理壓力,這也意味著新人入門的門檻也越來越高。
es多少根本不重要,只要是babel支持的,就會去用。
asdfasdf
asdfasdfasdf
aasdfasdfasdfasdf
就當前處境來看,規範內、規範外大家都在用,而且用的飛起,我們有Babel啊,我管你ECMA呢,更何況node到了version8之後。。。
規範寫的很好呀,簡單易懂,就是好長。
瀏覽器跟不上,就算跟上了新版本不是主流還是白搭,比如ie6,7,8,9,10等等
不如十年前的es4。寫了3年as3(es4)和3年js的老程序員的評價
大多數人是被動的更新知識的,所以離廣泛應用還很遠
什麼規範都跟我沒關係 我只看需求文檔。
推薦閱讀:
※如何讓一個div裡面的div垂直居中?
※facebook首頁的這個載入效果是怎麼實現的?
※網站為什麼 JS 調用盡量放到網頁底部?
※可否通過polyfill讓微軟的wscript能運行node.js腳本?
※如果 ES2015 完全普及了,我們還需要 Babel 嗎?
TAG:前端開發 | JavaScript | ECMAScript |