ES6学习笔记系列总结

为什么又开始学习JS

如果从本科时候还写过几个很烂的CMS静态前端模板开始算起,我也算是个(伪)资深Web开发了(如果写几个最基本的HTML页面也算的话)。

写前端静态模板的那个年代,仍然有大量要求兼容IE第几版本的需求(好消息是现在Edge出现了,终于连微软自己都抛弃IE了)。各个浏览器之间的差异仍然很大,而有的时候这些差异并非是浏览器设计实现上优劣的差异,而仅仅是各大厂商希望占有市场的因素造成的。

当时我一直认为,程序员花大量的时间去研究这些东西,只是为了各个浏览器都显示同一个效果,是一件很愚蠢的事情。

于是当时我放弃了学习JavaScript,转而走进了后端的世界。在Java和PHP热火朝天的背景下我也没能免俗,投入了Java Web的世界中。

两年的自学效果虽不能说完全没有,但是收获甚微,一来缺少真正的实战项目,自己花时间精力去学的那一些框架,总是不能深刻地理解,不能很好地理解也就不能很好的记忆,于是便出现了记了忘,忘了记这种循环。效率太低,收获甚微。二来研究生在读,也并非全力在学习,最后的结果就是成了一个Github搬运工。

由于工作和毕业阴差阳错,不仅毕业延期了,近一年来技术上的成长也是浑浑噩噩。

今年四月份的时候,接触到了Facebook的React,在解决了毕业要求的期刊论文之后,又看到了基于Node的Meteor,深深地被React这种控件化的前端开发和Meteor这种基于响应式数据的后端开发所触动。而此前各大浏览器的很多差异都已经被统一或者被一些中间层的库屏蔽掉了。而且JavaScript不仅吃前后端,甚至非关系型数据库方面也占有一席之地,另外如果配上React Native,更是对移动端也在虎视眈眈。

当然,最重要的是我目前工作上也用的是React + Meteor,因此是时候重新把JavaScript重新捡起来了。

关于ES6

ES6的出现确实让JavaScript的开发舒服了很多,虽然各个开发环境下还是存在兼容性问题,不过引入中间编译器(Babel等)可以很好地解决这些问题。

学好ES6还是需要很多JavaScript的基础,比如最典型的class关键字,class关键字本身只是JavaScript基于原型的面向对象的一个语法糖,其本质仍然是和ES5一样。我在class那篇笔记中并没有详细写关于原型链的详细介绍。

ES6相比之前的JavaScript,既有像let和var的区别这样的细节改动,也有像模块这样的重量级引入;既有class这样拥有诸多议论的关键字,也有像模板字面量这样的非常实用的语法糖。

总地来讲,ES6还是极大地增加了JavaScript开发的便捷性,但如果需要用好ES6,扎实的JavaScript语言基础,是必不可少的。

写在最后

在开始写这一系列的笔记的时候,我也几乎可以算是从零开始学习,之前虽然碰到过几个特性,但都是知其然不知其所以然。整一个系列的笔记总结写下来,我自己也学习收获了很多,比如一开始只是想通过学习Babel来简单总结一下ES6的一些特性,后来发现Babel官方的ES6教程只是蜻蜓点水,内容实在太少,于是又加入了一些新的参考。

中后期的笔记大多数主要参考来自MDN,而Babel反倒成了次要。随着在网上找的权威的文档和前辈们写的总结越来越多,我甚至怀疑是否还有写这些东西的必要,毕竟我这些东西跟其他的一比几乎毫无价值。

但转念一想,这些总结最重要的读者并不是别人,而是我自己,我需要时不时回来看看这些东西,跟别人比写得不好没关系,重要的是我每次来看,都能回想起一些知识点,这个是最重要的。

也因此,这个系列的总结一开始叫『ES6特性简介』,最后改成了『ES6学习笔记』。

最后,关于笔记中一些不足的地方,我后续还会修改和增删内容。

推荐文档

  1. BabelJS - Learn ES2015
  2. MDN
  3. ECMAScript 6 入门 - 阮一峰