ECMAScript 6入门 互动版

简介
什么是ES6? 支持 环境支持
变量与字符串
let let应用 const声明常量 是否包含字符串三种新方法 repeat()原字符串重复 模板字符串 标签模板 String.raw()
数值
值是否无穷,NaN 值是否整数 Math对象 Math 对数方法
数组
Array.from() Array.of() 数组实例的find()和findIndex() 数组实例的fill() 数组实例的entries(),keys()和values()
对象
属性的简洁表示法 属性名表达式 比较两个值是否严格相等 Object.assign() proto属性 Symbol类型 Proxy内置代理
函数
默认参数 rest参数 扩展运算符 箭头函数 函数绑定 尾调用优化
Set
基本用法 Set实例的属性 Set实例的方法 遍历操作 WeakSet
Map
Map结构的目的和基本用法 实例的属性和操作方法 遍历方法 WeakMap
Iterator(遍历器)和for..of
Iterator(遍历器)的概念 数据结构的默认Iterator接口 调用默认Iterator接口的场合 原生具备Iterator接口的数据结构 Iterator接口与Generator函数 遍历器的return(),throw() for...of循环
Generator
简介 next方法的参数 for...of循环 throw方法 yield*语句 作为对象属性的Generator函数
Promise
Promise的含义 基本用法 Promise实例添加状态改变时的回调函数 指定发生错误时的回调函数 Promise.all()方法 Promise.race()方法 Promise.resolve()方法 Promise.reject()方法 Generator函数与Promise的结合 async函数
Class
Class基本语法 Class的继承 class的取值函数(getter)和存值函数(setter) Class的Generator方法 Class的静态方法 new.target属性 修饰器-类的修饰1 修饰器-类的修饰2
Module
export命令 import命令 模块的整体输入 module命令 export default命令 模块的继承
在线工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器

Iterator(遍历器)的概念

遍历器(Iterator就是统一的接口机制,来处理所有不同的数据结构。

Iterator的作用有三个:一是为各种数据结构,提供一个统一的简便的访问接口;二是使得数据结构的成员能够按某种次序排列;三是ES6创造了一种新的遍历命令for...of循环,Iterator接口主要供for...of消费。

Iterator的遍历过程是这样的。

  • 创建一个指针,指向当前数据结构的起始位置。也就是说,遍历器的返回值是一个指针对象。
  • 第一次调用指针对象的next方法,可以将指针指向数据结构的第一个成员。
  • 第二次调用指针对象的next方法,指针就指向数据结构的第二个成员。
  • 调用指针对象的next方法,直到它指向数据结构的结束位置。

每一次调用next方法,都会返回当前成员的信息,具体来说,就是返回一个包含valuedone两个属性的对象。其中,value属性是当前成员的值,done属性是一个布尔值,表示遍历是否结束。

function idMaker(){
    var index = 0;

    return {
       next: function(){
           return {value: index++, done: false};
       }
    }
}

var it = idMaker();

it.next().value // '0'
it.next().value // '1'
it.next().value // '2'