2018 年,JavaScript 都经历了什么?

这些年,JavaScript生态系统异常活跃:

ECMAScript打破多年的沉寂,每年都会给我们带来新的特性,像async函数这种语法为开发者减少了大量冗余的代码;

JS大家庭的其他成员也都在进步,从前端到后端,从底层的JS引擎到上层的NPM库,而大家热爱的Vue正在重写3.0

就连古老的编辑器也能带来新的惊喜,Visual Studio Code超越各种其实还不错的竞品,成为最受JSer欢迎的IDE

Microsoft终于放弃了倒腾与众不同的浏览器,选择加入Chromium阵营,未来大家终于可以少纠结一点兼容问题了......

2018也是同样精彩的一年,JavaScript都经历了什么呢?

 

 

一、The State of JavaScript 2018

 

The State of JavaScript调研已经连续做了3年,今年一共调研了2万多个JS开发者。有这样一些有意思的发现:

  • 绝大多数开发者都用过ES6,同时TypeScript也越来越流行了;

  • React依然最流行的前端框架,同时Vue也越来越受欢迎了;

  • Express依然是最流行的Node.js框架,既然Node 8已经支持async函数了,Koa的价值就大大降低了;

  • Visual Studio Code远远超越Sublime,成为最流行的JS编辑器。

作为一个后端用着Express框架、尽量使用最新的ECMAScript语法,而前端用着TypeScript、不过框架还是AngularJS 1(这事要怪版本帝Angular不向后兼容),还抛弃了价值70刀的Sublime、今年加入VS code阵营的JSer——我也是算是够主流了吧!那你的技术债是怎样的呢?

 

 

二、ECMAScript 2018

 

TC39(ECMAScript标准委员会)这些年越来越勤快了,从2015年(ES6)开始,每年发布一个新的ECMAScipt标准。ECMAScript 2018,即ES9,则在6月如期发布了,其新增的特性并不多:

主要新特性:

  • 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的细节,可以看看Axel Rauschmayer博士写的Exploring ES2018 and ES2019(http://exploringjs.com/es2018-es2019/toc.html)。

 

 

三、Node 10

 

Node 10在4月发布并且在10月成为LTS,即长期支持版本。

Node 10使用了新的V8引擎6.8,因此性能提升了很多,比如Promise与Async函数的性能提升就非常明显,因此建议大家升级。

Node新版本的发布日期一直非常稳定,做到这一点也是不容易啊!

 

四、Vue 3.0

 

在Vue.js Conference Toronto 2018上,Vue.js 创作者尤雨溪发表了主题演讲Vue 3.0 Updates,表示新版本将会有这些变化:

  • 更快;

  • 更小;

  • 更易于维护;

  • 更多的原生支持;

  • 放弃Flow,使用TypeScript。

Vue 3.0与其说是更新或者重构,不如说是重写,因为变化很大,但是同时会保证向后兼容。

Vue 3.0预计将在2019年发布,大家一起期待吧!

 

 

五、Babel 7

 

2年多时间commit了4000多次,Babel 7终于发布了(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特性已经支持得不错了,不过还是存在并且永远存在很多非主流浏览器,于是我们还是离不开神奇的Babel。

 

 

六、jQuery 3.3.0

 

曾经风靡一时的jQuery发布了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时代已经逐渐功成身退,GitHub网站干脆完全移除了jQuery

 

 

七、V8引擎10周年

 

强大的V8引擎已经发布10周年了,它的命名灵感来自超级性能车的V8引擎,果然名副其实!V8的性能一直在稳步提高:

V8引擎当初是为Chrome浏览器开发的,但是早已成为一个独立的项目。国内的众多浏览器,包括搜狗、360、猎豹、QQ、百度、UC都是基于Chromium开发的,而Chromium相当于开源版本的Chrome,自然也是基于V8引擎的。因此,众多"国产"浏览器实际上都是基于V8的。

融资了2.5亿元红芯浏览器也不例外,他们干脆打包了Chrome浏览器的安装包,果然有钱任性!还有,就连浏览器界的一朵奇葩Microsoft也投靠了Chromium阵营。

另外,Node.js也是基于V8引擎的。

 

 

八、NPM模块event-stream被黑客攻击

 

这件事闹得沸沸扬扬,不过只是有很多噱头,如果认真分析黑客干了什么,其真实影响也没那么大,至少Vue开发者没啥好担心的:

  • 比特币钱包copay依赖event-stream模块;

  • 黑客从骗取了event-stream模块的npm发布权限;

  • 黑客为event-stream模块添加了依赖flatmap-stream;

  • flatmap-stream含有黑客代码,仅会在copay项目中正确执行,窃取用户的密码、私钥等信息,从而盗取比特币;

  • 有人说什么Vue可能遭受攻击,其实没有这回事,因为黑客代码只会在copay项目中正确执行。只有copay项目的package.json中的description字符串"A Secure Bitcoin Wallet"能够解密黑客代码;而且,黑客的代码是为copay量身定做的,对其他项目没有作用;再说,黑客是来窃取的比特币的,又不是挖矿,你的项目有比特币给人家偷吗?

所以同学们,不要轻易相信标题党......

 

 

九、《Refactoring》第2版改用JavaScript

 

对于《重构:改善既有代码的设计》这本书,我想大多数人都没看过,但是至少应该都听说过。这本书刚出了第二版,所有示例代码由Java改成了JavaScript。

根据作者Martin Fowler的解释,《重构》这本书重点在于思想,适用于各种编程语言,所以选择什么语言并不重要。而他选择JavaScript的原因很简单,因为JS既支持面向过程编程,又支持面向对象编程,这样方便写非OOP代码重构的示例。

前端大神尤雨溪说过这样一句话:

至于重构、设计什么的,我只想说,看的是使用的人的水平,跟用什么语言没那么大关系。水平烂的人用 TS 一样写的是翔一样的代码,看看 Java 就知道了。

《Refactoring》的示例代码用什么语言写根本不重要,重要的是背后的编程思想。顺便推荐一下《Clean Code》,如果基本的编程习惯和思想没有提升的话,换个语言或者框架是没用的。

这本书原价54.66刀,的确有点贵,不过算是必读书,大家看着办......

 

 

十、GitHub抛弃jQuery

 

另外,GitHub的技术极客们花了数年时间,以非常规范的流程完全移除GitHub网站了jQuery:

  • 实现了一个ESlint插件eslint-plugin-jquery,禁止在代码中使用已经弃用的jQuery方法。这样可以防止同事使用jQuery方法。

  • 使用原生代码重写了2个依赖于jQuery的模块jquery-pjax和facebox。

  • 开发一个定制的jQuery版本,一旦完全移除某个jQuery方法,就删除jQuery中的对应代码。这样既可以减少jQuery大小,也可以防止同事使用已经移除的jQuery方法。

  • 根据用户统计数据,来逐步放弃支持低版本的IE浏览器,这样的话可以无需依赖jQuery来保证兼容性。

  • ......

萝卜青菜各有所爱,是否使用jQuery各有各的想法和需求,但是GitHub弃用jQuery的流程非常专业,可以作为处理技术债的标准规范。

 

 

十一、Microsoft爱上JavaScript

 

土豪Microsoft似乎爱上了JavaScript,它家的Office 365、MicroSoft Teams以及Skype都开始使用JavaScript重写了。原因无疑是JS的跨平台特性——同一套代码多处运行,虽然现在还有很多问题,但是这样的未来不是挺好么?

此处应该再来感受一下大名鼎鼎的Atwood's Law:

Any application that can be written in JavaScript, will eventually be written in JavaScript.

在浏览器市场上,Microsoft曾经通过捆绑Windows打败了网景,不过这些年在Chrome面前一败涂地,现在终于"认输",选择基于Chromium重写浏览器。对于JSer来说,至少意味着浏览器兼容问题可以缓解很多。

根据The State of JavaScript 2018,Microsoft开发的Visual Studio Code俨然已经成为最受JSer欢迎的代码编辑器,一些流行插件下载量高达上千万:

市值超过Apple,重回全球市值最高公司的Microsoft有钱任性,买下了JS开发者最多的GitHub

从JSer的角度也能看出,IT界的罗马帝国(出自吴军的《浪潮之巅》)Microsoft又重新崛起了,这是一件很了不起的事情。

 

 

十二、Oracle宣示JavaScript主权

 

Oracle明年就要开始给Java收费,虽然只是JDK 8的u192之后的更新要收费,这个行为大概会让很多Java开发者不爽......

另外,Oracle还要求一个iOS开发者将一款叫做”HTML5, CSS, JavaScript, HTML, Snippet Editor“的App从App Store下架,因为App名字中包含“JavaScript”字眼,而Oracle拥有JavaScript在美国的商标权。

Oracle这位大爷惹不起,因此大家正在一本正经地建议给JavaScript改名。当然这基本上是不可能的,这辈子都不可能......

作者:刘凯,Fundebug CTO。

 

 热 文 推 荐 

 iPhone 史上最大优惠;摩拜「裁员门」反转;百度网盘缩减空间 | 极客头条

 程序员开发软件的意义到底在哪?

 Eclipse 4.10.0 正式发布,全面拥抱 Java 11!

☞ 面向对象编程,再见!

☞ 云计算到底是怎么玩的?

☞ 00后也会「玩」区块链,你对「朝阳」行业焦虑啥 ?| 圣诞特辑(文末有福利)

 何恺明等最新突破:视频识别快慢结合,取得人体动作AVA数据集最佳水平

 霸气!女程媛征男友的需求说明书!

极简JAVA学习营第五期(报名以后加助教微信:eduxy-1)

01-19
想学好JAVA必须要报两万的培训班吗? 【课程背景】 JAVA是市场份额最大的编程语言,每天各大招聘网站上都会有数万个JAVA开发工程师的在招岗位,但是JAVA的技术体系庞大复杂,要想扎实掌握JAVA不是一件容易的事,线上学习相比线下两万起的高昂费用便宜了很多,而且具备学习时间灵活的优势,但是线上学习的劣势也很明显,没有线下那种学习氛围,碰到问题没法解决,在家学习很容易偷懒,极简JAVA学习营充分考虑到这些问题,通过每日实战编程练习,分队pk,助教答疑,作业点评,作业讲解,项目答辩等诸多环节充分激发你的学习热情,解决你学习中碰到的问题,让你花十分之一的钱学到JAVA的精髓,开启你的人生逆袭之路。 【专项的贴心服务】 1. 学练结合:定期布置视频任务和编程实战练习:通过每天的视频任务统一大家的进度,以便同学更好的交流,针对每天的任务会有相应的编程实战练习,通过练习内化知识。 2. 分队PK:将就业营的同学分成几队,通过作业统计表统计每队提交作业情况进行PK,激发你的学习动力。 3. 助教讲师答疑:碰到任何问题,发到群里,助教和讲师十分钟内帮你解决问题,扫清学习中的障碍。 4. 助教点评讲解作业:你每天提交作业都会有助教进行点评,让你知道有什么问题怎么解决,每三天一次视频讲解作业,互动解答问题 5. 项目答辩:每个阶段学完会有项目答辩,通过做项目巩固前一阶段的知识点,锻炼编码能力。 【往期训练营学习展示】 【套餐内容简介】 本套课以市场就业和职位需求为核心,从JAVA入门到多领域实战,设计出学习路线,共分为二十大模块,分别是:JAVA面向对象、Object类与常用API、集合框架、IO流、反射注解、多线程与网络编程、Object类与常用API等等。 同时采用理论讲解加实战演练的方式,既能让学员听懂听明白达到理解透彻,又能够在一个个真实实战案例中,让学员掌握真正有用的开发技能,从而进阶 JAVA 工程师! 套餐中一共包含21门JAVA程,助你从零进阶JAVA工程师! 阶段一:JAVA基础 课程1:《极简JAVA学习营开营篇》 课程2:《极简JAVA:JAVA面向对象》 课程3:《极简JAVA:Object类与常用API》 课程4:《极简JAVA:集合框架》 课程5:《极简JAVA:IO流》 课程6:《极简JAVA:反射注解》 课程7:《极简JAVA:多线程与网络编程》 阶段二:数据库入门 课程8:《极简JAVA:MySql数据库》 课程9:《极简JAVA:JDBC与连接池》 阶段三:JAVA WEB 课程10:《极简JAVA:HTML5与CSS3》 课程11:《极简JAVA:极简JAVA十一:Javascript与Jquery》 课程12:《极简JAVA:BootStrap》 课程13:《极简JAVA:JAVA Web》 阶段四:框架实战 课程14:《极简JAVA:Mavean入门》 课程15:《极简JAVA:MyBatis框架》 课程16:《极简JAVA:Spring框架》 课程17:《极简JAVA:Spring Mvc》 课程18:《极简JAVA:Oracle数据库》 课程19:《极简JAVA:Git入门》 课程20:《极简JAVA:Linux入门》 课程21:《极简JAVA:SpringBoot》 【课程特色】 1、易理解:讲师思路清晰、节奏明确、从易到难讲解透彻明白; 2、知识全:知识全面系统,从JAVA入门到实战,由易到难,让你彻底掌握JAVA开发; 3、重实战:涵盖大量实战项目,锻炼你的动手实操能力,面向工作编程; 【面向人群】 1、在校计算机专业或者对软件编程感兴趣的学生; 2、零基础想学JAVA却不知道从何入手 3、囊中羞涩,面对两万起的JAVA培训班不忍直视 4、在职没有每天大块的时间专门学习JAVA 这么细致的服务,这么好的氛围,这样的学习效果,你还等什么?赶紧报名吧,抓紧抢位,本期只招100人,错过只有等时间待定的下一期了
©️2020 CSDN 皮肤主题: 代码科技 设计师: Amelia_0503 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值