2018.1.13 六 16:43
一 ES6是什么
http://www.infoq.com/cn/articles/es6-in-depth-an-introduction
作者 Jason Orendorff ,译者 刘振涛 发布于 2015年6月5日
1.1 ECMAScript发生了什么变化?
- 语言语法 – 语法解析规则、关键字、语句、声明、运算符等。
- 类型 – 布尔型、数字、字符串、对象等。
- 原型和继承
- 内建对象和函数的标准库 – JSON、Math、数组方法、对象自省方法等。
1.2 新标准
1.3 版本号6
1.6 兑现承诺
二 迭代器和for-of循环
http://www.infoq.com/cn/articles/es6-in-depth-iterators-and-the-for-of-loop
作者 Jason Orendorff ,译者 刘振涛 发布于 2015年6月26日. 估计阅读时间: 16 分钟
- for(var i=0;i<arr.length;i++){},arr.forEach()
不能break,return, - for-in ,字符串”1”,”2”(计算有问题);自定义属性也可以,包括原型链;某些情况随机的顺序
2.1强大的for-of循环
2.2 for-of循环也可以遍历其它的集合
数组,类数组,字符串,Map,Set。不支持普通对象
2.3 深入理解
for-of循环语句通过方法调用来遍历各种集合。数组、Maps对象、Sets对象以及其它在我们讨论的对象有一个共同点,它们都有一个迭代器方法。
你可以给任意类型的对象添加迭代器方法。
// 因为jQuery对象与数组相似
// 可以为其添加与数组一致的迭代器方法
jQuery.prototype[Symbol.iterator] = Array.prototype[Symbol.iterator];
2.4 迭代器对象
2.5 我何时可以开始使用这一新特性?
三 生成器
http://www.infoq.com/cn/articles/es6-in-depth-generators
“最具魔力的” 它甚至可以帮助你逃离“回调地狱”。
3.1 ES6生成器(Generators)简介
3.2 生成器做了什么?
3.3 生成器是迭代器!
3.4 生成器和异步代码
3.5 如何应用这些疯狂的新特性?
3.6 yield
四 模版字符串
4.1 反撇号(`)基础知识
4.2 反撇号的未来
4.3 我什么时候可以开始使用这一特性?
4.4 等等——那么Markdown呢?
4.5 下回预告
五 不定参数和默认参数
5.1 不定参数
5.2 默认参数
5.3 停止使用arguments
5.4 浏览器支持
5.5 文后盘点
六 解构 Destructor
6.1 什么是解构赋值?
6.2 数组与迭代器的解构
6.3 对象的解构
6.4 解构值不是对象、数组或迭代器
6.5 默认值
6.6 解构的实际应用
1 函数参数定义
2 配置对象参数
3 与ES6迭代器协议协同使用
4 多重返回值
5 使用解构导入部分CommonJS模块
6.7 文后盘点
七 箭头函数 Arrow
7.1 函数表达式无处不在
7.2 箭袋中的新羽
7.3 这个函数的this值是什么呢?
7.4 借助箭头函数洞悉计算机科学的风尘往事
7.5 我何时可以使用箭头函数?
八 Symbols
8.1 它是JavaScript的第七种原始类型
8.2 从一个简单的布尔类型出发
8.3 symbol是最终的解决方案
8.4 但是,到底什么是symbol呢?
8.5 获取symbol的三种方法
8.6 symbol在ES6规范中的应用
8.7 我何时可以使用ES6 symbol?
九 学习Babel和Broccoli,马上就用ES6
9.1 转译技术拯救了我们
9.2 实际体验Babel
9.3 我们的首个Broccoli与Babel项目
1 配置项目
9.5 Babel和Broccoli组合还有更多乐趣
$_EXCLUDE:本章有点过时
十 集合
0.1 共同发展中的难题
0.2 为什么要集合?
0.3 Set
0.4 Map
0.5 JS是不同的,第一部分:没有哈希代码的哈希表?
0.6 JS是不同的,第二部分:意料之外的可预测性
0.7 推荐使用弱集合的重要原因
0.8 WeakMap和WeakSet
0.9 JS是不同的,第三部分:隐藏垃圾回收的不确定性
0.0 什么时候可以用上这些集合呢?
十一 生成器 Generator
1.1 快速回顾
1.2 如何关停生成器
1.3 生成器主导模式
1.4 如何销毁生成器
1.5 结合生成器实现更多功能
$_TODO:再看,没怎么看懂
十二 代理 Proxies
2.1 它是如何做到的?
2.2 所以,对象到底是什么?
2.3 代理 Proxy
2.4 代理句柄
2.5 小试牛刀(一):“不可能实现的”自动填充对象
2.6 小试牛刀(二):只读视图
2.7 只言片语
2.8 现在,你认为对象是什么?
2.9 我现在可以使用代理么?
$TODO:再看,没看懂。
$好消息是,可以先查一下浏览器的兼容性
十三 类 Class
3.1 目前面临的问题
3.2 方法定义语法
3.3 类定义语法
十四 let和const
4.1 问题 #1:JS没有块级作用域
4.2 问题 #2:循环内变量过度共享
4.3 let是更完美的var
4.4 const
4.5 神秘的代理命名空间
4.6 我现在可以使用let和const了么?
十五 子类 Subcalss
5.1 JavaScript继承
5.2 子类化的基本概念
5.3 Super属性
5.4 子类化内建方法
5.5 派生类构造函数
5.6 new.target
5.7 鱼和熊掌可以得兼
5.8 目前的可用性
$_TODO:再看,没怎么看懂啊。。。
十六 模块 Module
6.1 模块基础知识
6.2 Export列表
6.3 重命名import和export
6.4 Default exports
6.5 模块对象
6.6 聚合模块
6.7 import实际都做了些什么?
6.8 静态vs动态:论规则及破例之法
6.9 我什么时候可以使用ES6模块?
十七 展望未来
7.1 你可能正在使用的特性
7.2 实用特性
7.3 文本
7.4 数字
7.5 最后的最后
2018.1.13 23:28
读后总结:
更像是一个标准出来之前的发布介绍会。文中对ES6 新增的东西,分类做了陈述;好像还有一些现在能见到的知识点,没有说明。
该系列是从整体上,学习、分析ES6,从其语法-引用,是从语言的角度做阐述说明。
实际应用(具体语法使用)几乎可以说是没有介绍,毕竟是笼统的说明。
加上可能有一些滞后性,还需要再看ES6入门-ruan,然后应用到实际代码中