React核心团队成员和Redux作者Dan Abramov谈如何学习JS

张中中评:高手学+懂+用,速度真快。

以下为正文

编者按:本文内容来自Redux作者Dan Abramov为新书《深入理解ES6》写的序,谈到他是如何从iOS开发转向Web开发,然后如何学习JavaScript。

ECMAScript 6如暴风雨般骤临世界,人们期待已久而它却突然出现,传播之快无人能及,每个人都与ES6有一段与众不同的故事,以下是我的故事。

2013年,我还在一家创业公司工作,正在从iOS转向Web研发,之后我参与JavaScript开源社区并共同创建了Redux。当时我正努力学习Web开发,而且我非常害怕,我的团队必须在短短几个月的时间内将我们的产品用JavaScript重构为Web版。

起初我认为用JavaScript编写大型软件的想法很可笑,但是一名团队成员说服了我,他说JavaScript不是一门玩具语言。我同意撇开成见试一试,于是打开MDN和StackOverflow首次深入学习JavaScript。我对这门简约的语言着了迷,我的同事还教我如何使用工具,例如代码整理工具(linter)和代码合并工具(bundler)。在这几个星期里我恍然大悟,原来我如此喜欢编写JavaScript代码。

但没有一门语言是完美的,由于使用过其他语言,我非常希望JavaScript也可以频繁更新,但在这十年间,ECMAScript 5是唯一的重大更新,它只实现了一小部分特性,浏览器完全支持需要数十年的时间。彼时,即将到来的代号为Harmony的ECMAScript 6(ES6)规范尚未完成,遥遥无期。“也许在10年内我能够写一些ES6代码吧”我想。

一些实验性的“转译器(Transpiler)”,如谷歌的Traceur,可以将代码从ES6转换成ES5。他们大多都功能非常有限,或难以插入现有的JavaScript构建管道。但是,随后出现的新型转译器6to5改变了一切。它易于安装,可以很好地集成在现有的工具中,生成的代码可读,于是像野火般蔓延开来。6to5现在被称作Babel,在标准定稿前就开始为主流受众提供ES6的特性。几个月以来,ES6无处不在。

出于各种原因,ES6已经把社区割裂开来。正如本书所讲,在许多主流浏览器中ES6仍未完全实现。当你正在学习这门语言时,不得不进行的构建步骤足以使人退缩。一些库的文档和示例中有ES6的代码,你可能想知道这些库是否可以在ES5环境中使用。这令人感到困惑,由于这门语言之前几乎从未改变过,所以许多人对于新特性的加入并没有十分期待,而其他人则焦急地等待新功能的到来,并将所有的这些新功能放在一起使用——在某些情况下,甚至为了使用而使用,超出了必要的范围。

随着我逐渐熟练运用JavaScript,我感觉有人正拖着我脚下的地毯,现在我不得不学习一门新的语言,这几个月的时间里我感到很糟糕。最后在圣诞节前夕,我开始阅读本书的草稿,我简直爱不释手,接下来我知道,凌晨3点时,参加聚会的每一位成员都已熟睡,而我却理解了ES6!

Nicholas是一位非常有天赋的老师。他以直截了当的方式传达深刻的细节,让你能够理解所有的这些知识。除了这本书之外,他也因创建ESLint而闻名,这是一个被下载了数百万次的JavaScript代码分析器。

Nicholas对JavaScript的了解程度少有人能够企及,所以不要错过吸取新知识的机会。阅读本书(《深入理解ES6》),你将对理解ES6充满信心。

Dan Abramov

React核心团队成员及Redux作者

你可能感兴趣的:(React核心团队成员和Redux作者Dan Abramov谈如何学习JS)