摘要: ArrayBuffer ArrayBuffer对象、TypedArray视图和DataView视图是 JavaScript 操作二进制数据的一个接口。这些对象早就存在,属于独立的规格(2011 年 2 月发布),ES6 将它们纳入了 ECMAScript 规格,并且增加了新的方法。它们都是以数组的语 阅读全文
posted @ 2019-02-21 22:03 秦时明月NightTiger 阅读(1142) 评论(0) 推荐(0) 编辑
摘要: Reflect 概述 Reflect对象与Proxy对象一样,也是 ES6 为了操作对象而提供的新 API。Reflect对象的设计目的有这样几个。 (1) 将Object对象的一些明显属于语言内部的方法(比如Object.defineProperty),放到Reflect对象上。现阶段,某些方法同 阅读全文
posted @ 2019-02-21 21:48 秦时明月NightTiger 阅读(240) 评论(0) 推荐(0) 编辑
摘要: Proxy 概述 Proxy 用于修改某些操作的默认行为,等同于在语言层面做出修改,所以属于一种“元编程”(meta programming),即对编程语言进行编程。 Proxy 可以理解成,在目标对象之前架设一层“拦截”,外界对该对象的访问,都必须先通过这层拦截,因此提供了一种机制,可以对外界的访 阅读全文
posted @ 2019-02-21 21:41 秦时明月NightTiger 阅读(430) 评论(0) 推荐(0) 编辑
摘要: Module 的加载实现 上一章介绍了模块的语法,本章介绍如何在浏览器和 Node 之中加载 ES6 模块,以及实际开发中经常遇到的一些问题(比如循环加载)。 浏览器加载 传统方法 HTML 网页中,浏览器通过<script>标签加载 JavaScript 脚本。 上面代码中,由于浏览器脚本的默认语 阅读全文
posted @ 2019-02-21 21:30 秦时明月NightTiger 阅读(366) 评论(0) 推荐(0) 编辑
摘要: Module 的语法 概述 历史上,JavaScript 一直没有模块(module)体系,无法将一个大程序拆分成互相依赖的小文件,再用简单的方法拼装起来。其他语言都有这项功能,比如 Ruby 的require、Python 的import,甚至就连 CSS 都有@import,但是 JavaScr 阅读全文
posted @ 2019-02-21 21:29 秦时明月NightTiger 阅读(344) 评论(0) 推荐(0) 编辑
摘要: async 函数 含义 ES2017 标准引入了 async 函数,使得异步操作变得更加方便。 async 函数是什么?一句话,它就是 Generator 函数的语法糖。 前文有一个 Generator 函数,依次读取两个文件。 const fs = require('fs'); const rea 阅读全文
posted @ 2019-02-21 21:00 秦时明月NightTiger 阅读(291) 评论(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 阅读(467) 评论(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) 编辑