摘要: async 函数 含义 ES2017 标准引入了 async 函数,使得异步操作变得更加方便。 async 函数是什么?一句话,它就是 Generator 函数的语法糖。 前文有一个 Generator 函数,依次读取两个文件。 const fs = require('fs'); const rea 阅读全文
posted @ 2019-02-21 21:00 秦时明月NightTiger 阅读(290) 评论(0) 推荐(0) 编辑
摘要: Generator 函数的异步应用 异步编程对 JavaScript 语言太重要。Javascript 语言的执行环境是“单线程”的,如果没有异步编程,根本没法用,非卡死不可。本章主要介绍 Generator 函数如何完成异步操作。 传统方法 ES6 诞生以前,异步编程的方法,大概有下面四种。 回调 阅读全文
posted @ 2019-02-21 15:47 秦时明月NightTiger 阅读(286) 评论(0) 推荐(0) 编辑
摘要: Generator 函数的语法 简介 基本概念 Generator 函数是 ES6 提供的一种异步编程解决方案,语法行为与传统函数完全不同。本章详细介绍 Generator 函数的语法和 API,它的异步编程应用请看《Generator 函数的异步应用》一章。 Generator 函数有多种理解角度 阅读全文
posted @ 2019-02-21 15:38 秦时明月NightTiger 阅读(360) 评论(0) 推荐(0) 编辑
摘要: Promise 对象 Promise 的含义 Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大。它由社区最早提出和实现,ES6 将其写进了语言标准,统一了用法,原生提供了Promise对象。 所谓Promise,简单说就是一个容器,里面保存着某个未来才会 阅读全文
posted @ 2019-02-21 15:25 秦时明月NightTiger 阅读(466) 评论(0) 推荐(0) 编辑
摘要: Iterator 和 for...of 循环 Iterator(遍历器)的概念 JavaScript 原有的表示“集合”的数据结构,主要是数组(Array)和对象(Object),ES6 又添加了Map和Set。这样就有了四种数据集合,用户还可以组合使用它们,定义自己的数据结构,比如数组的成员是Ma 阅读全文
posted @ 2019-02-21 15:12 秦时明月NightTiger 阅读(265) 评论(0) 推荐(0) 编辑
摘要: Symbol 概述 ES5 的对象属性名都是字符串,这容易造成属性名的冲突。比如,你使用了一个他人提供的对象,但又想为这个对象添加新的方法(mixin 模式),新方法的名字就有可能与现有方法产生冲突。如果有一种机制,保证每个属性的名字都是独一无二的就好了,这样就从根本上防止属性名的冲突。这就是 ES 阅读全文
posted @ 2019-02-21 12:46 秦时明月NightTiger 阅读(243) 评论(0) 推荐(0) 编辑
摘要: Set 和 Map 数据结构 Set 基本用法 ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。 Set 本身是一个构造函数,用来生成 Set 数据结构。 const s = new Set(); [2, 3, 5, 4, 5, 2, 2].forEach(x 阅读全文
posted @ 2019-02-20 11:37 秦时明月NightTiger 阅读(401) 评论(0) 推荐(0) 编辑
摘要: Class 的继承 简介 Class 可以通过extends关键字实现继承,这比 ES5 的通过修改原型链实现继承,要清晰和方便很多。 上面代码定义了一个ColorPoint类,该类通过extends关键字,继承了Point类的所有属性和方法。但是由于没有部署任何代码,所以这两个类完全一样,等于复制 阅读全文
posted @ 2019-02-20 11:09 秦时明月NightTiger 阅读(331) 评论(0) 推荐(0) 编辑
摘要: Class 的基本语法 简介 JavaScript 语言中,生成实例对象的传统方法是通过构造函数。下面是一个例子。 上面这种写法跟传统的面向对象语言(比如 C++ 和 Java)差异很大,很容易让新学习这门语言的程序员感到困惑。 ES6 提供了更接近传统语言的写法,引入了 Class(类)这个概念, 阅读全文
posted @ 2019-02-20 10:58 秦时明月NightTiger 阅读(294) 评论(0) 推荐(0) 编辑
摘要: 对象的扩展 属性的简洁表示法 ES6 允许直接写入变量和函数,作为对象的属性和方法。这样的书写更加简洁。 上面代码表明,ES6 允许在对象之中,直接写变量。这时,属性名为变量名, 属性值为变量的值。下面是另一个例子。 除了属性简写,方法也可以简写。 下面是一个实际的例子。 这种写法用于函数的返回值, 阅读全文
posted @ 2019-02-20 10:46 秦时明月NightTiger 阅读(243) 评论(0) 推荐(0) 编辑