我的Javascript入门书是《Head First JavaScript Programming: A Brain-Friendly Guide》,看过Head First系列的都知道这个系列是IT技术入门最容易的书。当时看的是英文版,欣闻图灵最近已经出版了其中文版《Head First JavaScript程序设计》,推荐所有零基础想学Javascript的童鞋都读一读这本书,看完后入门JS绝对没问题。
学习过《Head First JavaScript》之后,对于阅读JS的基础语法应该是没有太大问题了,但是因为《Head First JavaScript》作为一门入门型的书籍,并不会在(高级)细节上过多深入,所以当我们要进一步提升JS代码阅读/编写能力的时候,肯定会遇到读不懂/搞不定的事情 —— 这是一件好事,这意味着我们要迈向JS高级编程了,而JS高程3正是这样一本符合我们追求上进的需求的好书。本书第三章用了大约50页的篇幅细致的介绍了JS的基本语法,如果你哪里忘记了就重温一下,第四、五章又用了大约70页的篇幅详细介绍了变量、作用域和引用类型。如果你嫌高程3太重,也可以拿一本薄的《JavaScript语言精粹》—— 又称蝴蝶书,只有100来页,可以很快看完,故名“精粹 ”。蝴蝶书的作者是道格拉斯·克罗克福特(Douglas Crockford,JSON的缔造者),蝴蝶书对于了解JS的基础知识,比如对象,数组,语法,作用域,闭包等等都颇有帮助,在JS的代码风格上也给出不少好的建议。
进入到第六章,是面向对象的程序设计,这应该是本书的一个重点,也是每个JS写手应该熟知的内容。本书推出之时,距ECMAscript 5.1版发布并成为ISO国际标准也没有多久,ECMAScript5.1里是没有类的概念的,因 此依据ECMAscript 5.1 的标准来写OOP风格的程序与典型的面向对象语言(比如Java)有比较大的差别。通过本章,你将学到JavaScript独特的面向对象的编程方式,抛弃“类”的概念和基于“类的继承”,学习基于原型的继承和构造函数。并且将学会如何创建对象、定义自己的类型、使用继承以及其他各种操作来充分使用对象。本书作者 尼古拉斯.扎卡斯(Nicholas C.Zakas)可能觉得用JS写OOP这个事情可能会对典型的Java程序员造成困扰,还专门写了一本《JavaScript面向对象精要》,深入探讨了原始类型和引用类型、函数、对象、构造函数和原型对象、继承和对象模式等主题和特性,如果嫌本书写的还不够,可以专门阅读扎卡斯的这本不足百页的面向对象精要。
函数是Javascript世界的第一公民,如果说搞不清楚如何用Javascript来写面向对象的程序还不算致命,要是搞不清楚函数表达式,那在Javascript的世界里就基本没法混了。Javascript函数编程里,绕不过去的一个弯就是“闭包”,貌似也是很多前端面试必考的内容。本书、前面提到的蝴蝶书都对闭包做了详细解释。另外图灵出的《你不知道的JavaScript(上卷)》第一部分也是专门介绍JS作用域和闭包的,可以共同借鉴参详。
其实本书的英文名字是《Professional JavaScript for Web Developers》(中文版译名省掉了 “for Web Developers”,)也就是说本书其实主要是为Web开发者准备的,从第八章开始,本书为Web开发专门准备了三分之二以上的篇幅,如果你学习Javascript是专门为了服务端开发,那么看完第七章就可以出门右转找《深入浅出Node.js》和《Node.js实战》了。
作为标准的前端Javascript程序员,BOM和DOM、事件都是必备知识,本书用三分之一的篇幅涵盖了BOM和DOM的方方面面。当然,本书出来的时候,一些古老版本的IE浏览器还占据着统治地位,所以本书还不得不特别花了不少篇幅为IE开小灶,现在大部分前端程序员可能可以不那么提醒吊胆的考虑浏览器的兼容性问题了。关于DOM,图灵还有一本《JavaScript DOM编程艺术》,翻译质量很高,语言通俗易懂,也是适合DOM入门的佳作。
本书剩下的三分之一篇幅则包含了前端开发的其余方方面面——HTML5、XML、JSON、Ajax、E4X、客户端存储等等,足以让我们领略Web开发会遇到的知识点,这每一个知识点又可以扩充为一本书。图灵这方面的书很多,诸如:《HTML5秘籍》、《HTML5权威指南》、《XML基础教程》、《JSON必知必会》、《Ajax高级程序设计》、《客户端存储技术》等等……
Nicholas C. Zakas在第24章介绍了Javascript编程的最佳实践方法,着重于可维护性和性能。关于这两点,尼古拉斯专门还写了两本书,分别是《编写可维护的JavaScript》、《高性能JavaScript》,有兴趣的童鞋可以深入钻研。
关于ES6/ES2015、ES2016、ES2017 ,高程3出版的时候,ES6还没有影呢,但是近几年来,Javascript发展可谓日新月异,本书作者尼古拉斯也没有把读者们落下,于2016年出版了《Understanding ECMAScript 6: The Definitive Guide for JavaScript Developers》,其中文版《深入理解ES6》也已经于近日出版发行,书中详细讲解了ES6在JavaScript对象类型、语法及其他方面激动人心的改变,是专门为熟悉JavaScript和ECMAScript 5的读者准备的指南,帮助大家理解ECMAScript 5和6之间的差异。
最后,大家可能会关心:出了这么多新技术,我们的JS红宝书会不会更新啊?放心,《Professional JavaScript for Web Developers 4th Edition》已经蓄势待发,连发售日期都已经定好了,就在2018年1月29日,让我们好好期待吧——
- Get up to date with ECMAScript 6 and 7
- New frameworks, and new libraries
- Delve into web animation, emerging APIs, and build systems
- Test more effectively with mocks, unit tests, functional tests, and other tools Plan your builds for future ES releases