這些年,JavaScript生態(tài)系統(tǒng)異常活躍:
ECMAScript打破多年的沉寂,每年都會給我們帶來新的特性,像async函數(shù)這種語法為開發(fā)者減少了大量冗余的代碼;
JS大家庭的其他成員也都在進步,從前端到后端,從底層的JS引擎到上層的NPM庫,而大家熱愛的
Vue正在重寫3.0
;就連古老的編輯器也能帶來新的驚喜,Visual Studio Code超越各種其實還不錯的競品,成為
最受JSer歡迎的IDE
;Microsoft終于放棄了倒騰與眾不同的瀏覽器,選擇
加入Chromium陣營
,未來大家終于可以少糾結一點兼容問題了......
2018也是同樣精彩的一年,JavaScript都經(jīng)歷了什么呢?
The State of JavaScript 2018
The State of JavaScript調(diào)研
已經(jīng)連續(xù)做了3年,今年一共調(diào)研了2萬多個JS開發(fā)者。有這樣一些有意思的發(fā)現(xiàn):
絕大多數(shù)開發(fā)者都用過ES6,同時TypeScript也越來越流行了;
React依然最流行的前端框架,同時Vue也越來越受歡迎了;
Express依然是最流行的Node.js框架,既然Node 8已經(jīng)支持async函數(shù)了,Koa的價值就大大降低了;
Visual Studio Code遠遠超越Sublime,成為最流行的JS編輯器。
作為一個后端用著Express框架、盡量使用最新的ECMAScript語法,而前端用著TypeScript、不過框架還是AngularJS 1(這事要怪版本帝Angular不向后兼容),還拋棄了價值70刀的Sublime、今年加入VS code陣營的JSer——我也是算是夠主流了吧!那你的技術債是怎樣的呢?
ECMAScript 2018
TC39(ECMAScript標準委員會)這些年越來越勤快了,從2015年(ES6)開始,每年發(fā)布一個新的ECMAScipt標準。ECMAScript 2018,即ES9,則在6月如期發(fā)布了,其新增的特性并不多:
主要新特性:
Asynchronous Iteration;
Rest/Spread Properties。
新的正則表達式特性:
RegExp named capture groups;
RegExp Unicode Property Escapes;
RegExp Lookbehind Assertions;
s (dotAll) flag for regular expressions。
其他新特性:
Promise.prototype.finally();
Template Literal Revision。
如果想了解ES9的細節(jié),可以看看Axel Rauschmayer博士寫的Exploring ES2018 and ES2019(http://exploringjs.com/es2018-es2019/toc.html)。
Node 10
Node 10在4月發(fā)布并且在10月成為LTS,即長期支持版本。
Node 10使用了新的V8引擎6.8,因此性能提升了很多,比如Promise與Async函數(shù)的性能提升就非常明顯,因此建議大家升級。
Node新版本的發(fā)布日期一直非常穩(wěn)定,做到這一點也是不容易啊!
Vue 3.0
在Vue.js Conference Toronto 2018上,Vue.js 創(chuàng)作者尤雨溪發(fā)表了主題演講Vue 3.0 Updates,表示新版本將會有這些變化:
更快;
更小;
更易于維護;
更多的原生支持;
放棄Flow,使用TypeScript。
Vue 3.0與其說是更新或者重構,不如說是重寫,因為變化很大,但是同時會保證向后兼容。
Vue 3.0預計將在2019年發(fā)布,大家一起期待吧!
這里還是要推薦下小編的web前端學習群:867726593,不管你是小白還是大牛,小編我都歡迎,不定期分享干貨,包括小編自己整理的一份最新的web前端資料和0基礎入門教程,歡迎初學和進階中的小伙伴。在不忙的時間我會給大家解惑。
Babel 7
2年多時間commit了4000多次,Babel 7終于發(fā)布了(https://babeljs.io/blog/2018/08/27/7.0.0)。新增了下面這些特性:
babel-upgrade: 升級Babel的工具;
babel.config.js:學習ESLint與Webpack,使用JS文件配置;
overrides:允許同一個項目使用不同的Babel配置,例如前端代碼的targets為Chrome 60,而后端代碼的targets為Node 8;
......
主流瀏覽器對新的ECMAScript特性已經(jīng)支持得不錯了,不過還是存在并且永遠存在很多非主流瀏覽器,于是我們還是離不開神奇的Babel。
jQuery 3.3.0
曾經(jīng)風靡一時的jQuery發(fā)布了3.3.0,這個版本放棄了(deprecated)一系列方法:
jQuery.now;
jQuery.isWindow;
jQuery.camelCase;
jQuery.proxy;
jQuery.type;
jQuery.isNumeric;
jQuery.isFunction;
Event aliases。
這些方法大多會在jQuery 4.0中被刪除,因此jQuery官方鼓勵大家使用替代的方法。
從這個更新也能看出端倪,jQuery時代已經(jīng)逐漸功成身退,
GitHub網(wǎng)站干脆完全移除了jQuery。
V8引擎10周年
強大的V8引擎已經(jīng)發(fā)布10周年了,它的命名靈感來自超級性能車的V8引擎,果然名副其實!V8的性能一直在穩(wěn)步提高:
V8引擎當初是為Chrome瀏覽器開發(fā)的,但是早已成為一個獨立的項目。國內(nèi)的眾多瀏覽器,包括搜狗、360、獵豹、QQ、百度、UC都是基于Chromium開發(fā)的,而Chromium相當于開源版本的Chrome,自然也是基于V8引擎的。因此,眾多"國產(chǎn)"瀏覽器實際上都是基于V8的。
融資了2.5億元紅芯瀏覽器
也不例外,他們干脆打包了Chrome瀏覽器的安裝包,果然有錢任性!還有,就連瀏覽器界的一朵奇葩Microsoft也投靠了Chromium陣營。
另外,Node.js也是基于V8引擎的。
NPM模塊event-stream被黑客攻擊
這件事鬧得沸沸揚揚,不過只是有很多噱頭,如果認真分析黑客干了什么,其真實影響也沒那么大,至少Vue開發(fā)者沒啥好擔心的:
比特幣錢包copay依賴event-stream模塊;
黑客從騙取了event-stream模塊的npm發(fā)布權限;
黑客為event-stream模塊添加了依賴flatmap-stream;
flatmap-stream含有黑客代碼,僅會在copay項目中正確執(zhí)行,竊取用戶的密碼、私鑰等信息,從而盜取比特幣;
有人說什么Vue可能遭受攻擊,其實沒有這回事,因為黑客代碼只會在copay項目中正確執(zhí)行。只有copay項目的package.json中的description字符串"A Secure Bitcoin Wallet"能夠解密黑客代碼;而且,黑客的代碼是為copay量身定做的,對其他項目沒有作用;再說,黑客是來竊取的比特幣的,又不是挖礦,你的項目有比特幣給人家偷嗎?
所以同學們,不要輕易相信標題黨......
《Refactoring》第2版改用JavaScript
對于《重構:改善既有代碼的設計》這本書,我想大多數(shù)人都沒看過,但是至少應該都聽說過。這本書剛出了第二版,所有示例代碼由Java改成了JavaScript。
根據(jù)作者Martin Fowler的解釋,《重構》這本書重點在于思想,適用于各種編程語言,所以選擇什么語言并不重要。而他選擇JavaScript的原因很簡單,因為JS既支持面向過程編程,又支持面向?qū)ο缶幊蹋@樣方便寫非OOP代碼重構的示例。
前端大神尤雨溪說過這樣一句話:
至于重構、設計什么的,我只想說,看的是使用的人的水平,跟用什么語言沒那么大關系。水平爛的人用 TS 一樣寫的是翔一樣的代碼,看看 Java 就知道了。
《Refactoring》的示例代碼用什么語言寫根本不重要,重要的是背后的編程思想。順便推薦一下《Clean Code》,如果基本的編程習慣和思想沒有提升的話,換個語言或者框架是沒用的。
這本書原價54.66刀,的確有點貴,不過算是必讀書,大家看著辦......
GitHub拋棄jQuery
另外,GitHub的技術極客們花了數(shù)年時間,以非常規(guī)范的流程完全移除GitHub網(wǎng)站了jQuery:
實現(xiàn)了一個ESlint插件eslint-plugin-jquery,禁止在代碼中使用已經(jīng)棄用的jQuery方法。這樣可以防止同事使用jQuery方法。
使用原生代碼重寫了2個依賴于jQuery的模塊jquery-pjax和facebox。
開發(fā)一個定制的jQuery版本,一旦完全移除某個jQuery方法,就刪除jQuery中的對應代碼。這樣既可以減少jQuery大小,也可以防止同事使用已經(jīng)移除的jQuery方法。
根據(jù)用戶統(tǒng)計數(shù)據(jù),來逐步放棄支持低版本的IE瀏覽器,這樣的話可以無需依賴jQuery來保證兼容性。
......
蘿卜青菜各有所愛,是否使用jQuery各有各的想法和需求,但是GitHub棄用jQuery的流程非常專業(yè),可以作為處理技術債的標準規(guī)范。
Microsoft愛上JavaScript
土豪Microsoft似乎愛上了JavaScript,它家的Office 365、MicroSoft Teams以及Skype都開始使用JavaScript重寫了。原因無疑是JS的跨平臺特性——同一套代碼多處運行,雖然現(xiàn)在還有很多問題,但是這樣的未來不是挺好么?
此處應該再來感受一下大名鼎鼎的Atwood's Law:
Any application that can be written in JavaScript, will eventually be written in JavaScript.
在瀏覽器市場上,Microsoft曾經(jīng)通過捆綁Windows打敗了網(wǎng)景,不過這些年在Chrome面前一敗涂地,現(xiàn)在終于"認輸",選擇基于Chromium重寫瀏覽器。對于JSer來說,至少意味著瀏覽器兼容問題可以緩解很多。
根據(jù)The State of JavaScript 2018,Microsoft開發(fā)的Visual Studio Code儼然已經(jīng)成為最受JSer歡迎的代碼編輯器,一些流行插件下載量高達上千萬:
市值超過Apple,重回全球市值最高公司的Microsoft有錢任性,
買下了JS開發(fā)者最多的GitHub
。從JSer的角度也能看出,IT界的羅馬帝國(出自吳軍的《浪潮之巔》)Microsoft又重新崛起了,這是一件很了不起的事情。
Oracle宣示JavaScript主權
Oracle明年就要開始給Java收費
,雖然只是JDK 8的u192之后的更新要收費,這個行為大概會讓很多Java開發(fā)者不爽......
另外,Oracle還要求一個iOS開發(fā)者將一款叫做”HTML5, CSS, JavaScript, HTML, Snippet Editor“的App從App Store下架,因為App名字中包含“JavaScript”字眼,而Oracle擁有JavaScript在美國的商標權。
本站文章版權歸原作者及原出處所有 。內(nèi)容為作者個人觀點, 并不代表本站贊同其觀點和對其真實性負責,本站只提供參考并不構成任何投資及應用建議。本站是一個個人學習交流的平臺,網(wǎng)站上部分文章為轉(zhuǎn)載,并不用于任何商業(yè)目的,我們已經(jīng)盡可能的對作者和來源進行了通告,但是能力有限或疏忽,造成漏登,請及時聯(lián)系我們,我們將根據(jù)著作權人的要求,立即更正或者刪除有關內(nèi)容。本站擁有對此聲明的最終解釋權。