ES7引入了async函数,使得异步操作变为更加方便和简单。async本质上是generator函数的语法糖 一、介绍 我们现在需要依次读取两个文件,使用generator写,如下: const fs = require…
分类:ECMAScript6入门
《ECMAScript6入门》学习笔记之Promise
一、异步编程 由于JavaScript引擎是基于单线程、事件循环的,所以同一时刻只允许一个代码块在执行。在同一时刻中,JavaScript引擎只能执行一个代码块,而其他不在同一个事件循环中的代码块会被放在任务队列中,当当…
《ECMAScript6入门》学习笔记之Iterator和for-of
一、基本概念 iterator(迭代器)提供一种统一的接口,用以遍历一个集合型的数据结构。只要一个数据结构实现了iterator接口,那么它就能够: 1)使用for-of遍历 2)被展开运算符(...)展开 使用Type…
《ECMAScript6入门》学习笔记之Set和Map
Set()和Map()是ES6中新引入的两种数据结构,Set()同数学上的集合,其子元素不会重复。而Map()则是用来更好实现键值对映射的数据结构,解决了Object中键的类型只能为string的限制 一、基本用法 创建…
《ECMAScript6入门》学习笔记之Generator的语法
一、介绍 generator是ES6提供的一种异步编程解决方案,从语法上,可以将其理解为一个状态机,封装了多个内部状态。 执行generator函数,会返回一个遍历器对象,所以 generator也是一个遍历器对象生成函…
《ECMAScript6入门》学习笔记之Proxy
Proxy用于修改某些操作的默认行为,相当于在语言层面做出修改。可以认为是在目标对象之前架设了一层拦截,外界对目标对象的访问,都需要首先经过拦截层 一、示例 我们可以使用Proxy来拦截一个对象的属性的读写操作: con…
《ECMAScript6入门》学习笔记之函数的扩展
一、参数默认值 ES6之前,我们不能指定函数参数的默认值,通常的做法是: function foo(x) { x = x || 'Default Value'; return x; } 但是这种方法有一些问题,比如说: …
《ECMAScript6入门》学习笔记之Class
ES6中开始引入了class这一关键字,使得能够以更加清晰的方法来定义类和使用类。实际上,class本质上是一个语法糖 一、示例 定义一个类形如: class Point { constructor(x, y) { th…
《ECMAScript6入门》学习笔记之数组的扩展
一、扩展运算符 ES6引入了扩展运算符...,它可以将一个数组或者一个iterable的对象展开。用法有: console.log(...[1, 2, 3]); // 相当于: console.log(1, 2, 3);…
《ECMAScript6入门》学习笔记之对象的扩展
一、属性的简洁表示法 当对象中属性的key名称和value对应的变量名称相同时,可以只写key名称,如: var foo = '123'; var obj = { foo }; // 这相当于: var obj = { …
《ECMAScript6入门》学习笔记之Symbol
一、基础知识 Symbol是JavaScript的第7种数据类型,用来表示具有唯一性的值,创建一个symbol数据类型的变量,要通过Symbol()函数,如: let s = Symbol(); typeof s; //…
《ECMAScript6入门》学习笔记之Generator的异步应用
一、基本概念 1、异步 如果一个任务不是连续完成的,那么该任务可以被人为划分为两段,先执行第一段,然后转而执行其他任务,等做好了准备再回过头来准备第二段。而相应的,如果一个任务需要连续执行,中途不能被其他任务插入,那么这…