深入浅出ES6

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发生了什么变化?

  1. 语言语法 – 语法解析规则、关键字、语句、声明、运算符等。
  2. 类型 – 布尔型、数字、字符串、对象等。
  3. 原型和继承
  4. 内建对象和函数的标准库 – 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 分钟

  1. for(var i=0;i<arr.length;i++){},arr.forEach()
    不能break,return,
  2. 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 配置项目

  1. NODE
  2. BROCCOLI

    2 编写一些ES6代码

    3 转译时刻

    9.4 为网站编写ES6代码

    $_EXCLUDE:本章有点过时

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,然后应用到实际代码中

knowledge is no pay,reward is kindness
0%