摘要:
Set和WeakSet Set ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。需要记录不同成员的又不希望重复记录的情况下可以用到Set 如何生成Set: let set1 = new Set() let set2 = new Set([1,2,3]) Set 阅读全文
摘要:
Iterator Iterator(遍历器、迭代器) 是一个对象,Iterator对象需要包含一个next方法,该方法返回一个对象,此对象有两个属性,一个value表示当前结果,一个done表示是否可以继续迭代 let it = makeIterator(); function makeIterat 阅读全文
摘要:
Reflect Reflect是 ES6 为了操作对象而提供的新 API。ES6把原先版本中很多语言层面的API,比如Object.defineProperty delete in等集中在了Reflect的静态方法上,引入Reflect的目的有这样几个。 (1) 将Object对象的一些明显属于语言 阅读全文
摘要:
Proxy 在ES6之前Object.defineProperty可以拦截对象属性的读取和修改操作,Proxy 可以理解成比这个API更强大的,在目标对象之前架设一层的“拦截”。外界对该Proxy对象的访问,都必须先通过这层拦截,因此提供了一种机制,可以对外界的访问进行过滤和改写。Proxy 这个词 阅读全文
摘要:
async函数 基本概念 async 函数是什么?一句话,它就是 Generator 函数的语法糖。 将上一章的代码改成 async 函数的版本: const { promisify } = require("util"); const path = require('path') const fi 阅读全文
摘要:
Generator函数 基本概念 Generator(生成器) 函数是 ES6 提供的一种异步编程解决方案,并且Generator函数的行为与传统函数完全不同。 定义Generator函数 function* f() { } 形式上,Generator 函数是一个普通函数,但是有两个特征。一是,fu 阅读全文
摘要:
Map和WeakMap Map JavaScript 的对象(Object),本质上是键值对的集合(Hash 结构),但是传统上只能用字符串当作键。这给它的使用带来了很大的限制。 为了解决这个问题,ES6 提供了 Map 数据结构。它类似于对象,也是键值对的集合,但是“键”的范围不限于字符串,各种类 阅读全文
摘要:
Symbol 概述 ES6 引入了一种新的原始数据类型Symbol,表示独一无二的值。它是 JavaScript 语言的第七种数据类型,前六种是:undefined、null、Boolean、String、Number、Object 直接调用Symbol函数即可生成一个Symbol,注意Symbol 阅读全文