前端开发必读书目——Nicholas C.Zakas 的《深入理解ES6》
随着移动端浏览器性能和兼容性不断提升,以及各类 Javascript Native 框架的日渐成熟,Web 前端开发的确实越来越明朗和清晰。本系列文章为大家整理推荐一些前端开发的经典书籍,大家可根据自身实际情况选择阅读,希望对大家学好前端开发,提升自己的能力,找到心仪的工作有所帮助。
《深入理解ES6》
作者:[美] Nicholas C. Zakas
译者:刘振涛
出版: 电子工业出版社 2017年版
简要评价
市面上专门学习ES6的书籍并不多,我知道的好像就是阮一峰老师的《ES6标准入门》以及这本《深入理解ES6》了。
这本书的作者长期供职于雅虎,是牛逼的 JS 库 YUI 的主要作者,也是 Javascript 经典书籍 《Javascript高级程序设计》 的作者,这本《深入理解ES6》也一如既往,质量非常高。
和阮一峰老师的《ES6标准入门》相比,两者各有特点。阮一峰老师介绍的非常详细,对很多使用细节着墨非常多,但对其传承和原理却介绍的相对较少。这本书最大的特点是从浅到深,从为什么引入这个特性开始,一步一步地深入展开讲解,让你理解的非常通透,让你对 ES6 的新特性有更加深入和直观的理解,体现了一代大牛的深厚功底。
个人感觉,这两本书先看这本,首先深入理解 ES6 背后的逻辑,然后,如果要加深一下对有些细节的掌握,再看阮一峰的《ES6标准入门》,效果会比较好。
名家推荐
Redux 缔造者与 React 核心成员作序力荐,盛赞本书对JS的剖析无人企及。
主要内容
ES6是迄今为止JavaScript内核首当其冲的一次重大更新。本书是领域大家Nicholas C. Zakas撰写的一份ES6的完整指南,书中详细讲解了ES 6在JavaScript对象类型、语法及其他方面激动人心的改变。每一章都含有可运行于任何JavaScript环境的示例代码,你可以利用这些代码测试、理解ES6中的新功能。无论你是Web开发者还是Node.js开发者,都可以通过本书来更好地理解和运用ES6,或是顺利地从ES5迁移到ES6。
书籍目录
第1章 块级作用域绑定
var声明及变量提升机制
块级声明
循环中的块作用域绑定
全局块作用域绑定
块级绑定最佳实践的进化
小结
第2章 字符串和正则表达式
更好的Unicode支持
其他字符串变更
其他正则表达式语法变更
模板字面量
小结
第3章 函数
函数形参的默认值
处理无命名参数
增强的Function构造函数
展开运算符
name属性
明确函数的多重用途
块级函数
箭头函数
尾调用优化
小结
第4章 扩展对象的功能性
对象类别
新增方法
重复的对象字面量属性
自有属性枚举顺序
增强对象原型
正式的方法定义
小结
第5章 解构:使数据访问更便捷
为何使用解构功能
对象解构
数组解构
混合解构
解构参数
小结
第6章 Symbol和Symbol属性
创建Symbol
Symbol的使用方法
Symbol共享体系
Symbol与类型强制转换
Symbol属性检索
通过well-known Symbol暴露内部操作
小结
第7章 Set集合与Map集合
ECMAScript 5中的Set集合与Map集合
该解决方案的一些问题
ECMAScript 6中的Set集合
ECMAScript 6中的Map集合
小结
第8章 迭代器和生成器
循环语句的问题
什么是迭代器
什么是生成器
可迭代对象和for-of循环
内建迭代器
展开运算符与非数组可迭代对象
高级迭代器功能
异步任务执行
小结
第9章 JavaScript中的类
ECMAScript 5中的近类结构
类的声明
类表达式
作为一等公民的类
访问器属性
可计算成员名称
生成器方法
静态成员
继承与派生类
在类的构造函数中使用new.target
小结
第10章 改进的数组功能
创建数组
为所有数组添加的新方法
定型数组
定型数组与普通数组的相似之处
定型数组与普通数组的差别
小结
第11章 Promise与异步编程
异步编程的背景知识
Promise的基础知识
全局的Promise拒绝处理
Node.js环境的拒绝处理
浏览器环境的拒绝处理
串联Promise
响应多个Promise
自Promise继承
基于Promise的异步任务执行
小结
第12章 代理和反射API
数组问题
代理和反射
创建一个简单的代理
使用set陷阱验证属性
用get陷阱验证对象结构
使用has陷阱隐藏已有属性
用deleteProperty陷阱防止删除属性
原型代理陷阱
对象可扩展性陷阱
属性描述符陷阱
ownKeys陷阱
函数代理中的apply和construct陷阱
可撤销代理
解决数组问题
将代理用作原型
小结
第13章 用模块封装代码
什么是模块
导出的基本语法
导入的基本语法
导出和导入时重命名
模块的默认值
重新导出一个绑定
无绑定导入
加载模块
小结
附录A ECMAScript 6中较小的改动
附录B 了解ECMAScript 7(2016)
索引
喜欢闲适安静的生活,懂一点计算机编程,懂一点统计学和数据分析。(爱编程爱统计)
