Module

ModuleES6 的模块自动采用严格模式,不管你有没有在模块头部加上"use strict";。export 命令模块功能主要由两个命令构成:export和import。export命令用于规定模块的对外接口。import命令用于输入其他模块提供的功能。一个...

Class

Class用法class跟let、const一样:不存在变量提升、不能重复声明...es5面向对象写法跟传统的面向对象语言(比如 C++ 和 Java)差异很大,很容易让新学习这门语言的程序员感到困惑。ES6 提供了更接近传统语言的写法,引入了 Class(类)这个概念,作为对象...

async 函数

async 函数含义ES2017 标准引入了 async 函数,使得异步操作变得更加方便。async 函数是 Generator 函数的语法糖。什么是语法糖?意指那些没有给计算机语言添加新功能,而只是对人类来说更“甜蜜”的语法。语法糖往往给程序员提供了更实用的编码方式,有益于更好...

Generator

Generator简介基本概念Generator 函数是 ES6 提供的一种异步编程解决方案,语法行为与传统函数完全不同。执行 Generator 函数会返回一个遍历器对象,也就是说,Generator 函数还是一个遍历器对象生成函数。返回的遍历器对象,可以依次遍历 Genera...

Iterator

Iterator概念迭代器是一种接口、是一种机制。为各种不同的数据结构提供统一的访问机制。任何数据结构只要部署 Iterator 接口,就可以完成遍历操作(即依次处理该数据结构的所有成员)。Iterator 的作用有三个:为各种数据结构,提供一个统一的、简便的访问接口;使得数据结...

Promise

Promise概念Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大。所`Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。特点对象的状态不受外界影响。一旦状态改变,就不会再变,任何时候都...

Reflect

Reflect概述Reflect对象与Proxy对象一样,也是 ES6 为了操作对象而提供的新 API。设计目的将Object对象的一些明显属于语言内部的方法(比如Object.defineProperty),放到Reflect对象上。现阶段,某些方法同时在Object和Refl...

Proxy

Proxy概述Proxy 用于修改某些操作的默认行为,等同于在语言层面做出修改,所以属于一种“元编程”,即对编程语言进行编程。Proxy 可以理解成,在目标对象之前架设一层“拦截”,外界对该对象的访问,都必须先通过这层拦截,因此提供了一种机制,可以对外界的访问进行过滤和改写。Pr...

Set 和 Map 数据结构

Set 和 Map 数据结构Set基本用法ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。Set 本身是一个构造函数,用来生成 Set 数据结构。const s = new Set(); [2, 3, 5, 4, 5, 2, 2].for...

Symbol

Symbol为啥需要SymbolES5里面对象的属性名都是字符串,如果你需要使用一个别人提供的对象,你对这个对象有哪些属性也不是很清楚,但又想为这个对象新增一些属性,那么你新增的属性名就很可能和原来的属性名发送冲突,显然我们是不希望这种情况发生的。所以,我们需要确保每个属性名都是...