Skip to content

Latest commit

 

History

History

ecmascript6-primer

ECMAScript6入门

豆瓣链接

  • let和const命令
    • let命令
      • 基本用法
      • 不存在变量提升
      • 暂时性死区
      • 不允许重复声明
    • 块级作用域
      • 为什么需要块级作用域?
      • ES6的块级作用域
    • const命令
    • 全局对象的属性
  • 变量的解构赋值
    • 数组的解构赋值
      • 基本用法
      • 默认值
    • 对象的解构赋值
    • 字符串的解构赋值
    • 数值和布尔值的解构赋值
    • 函数参数的解构赋值
    • 圆括号问题
      • 不能使用圆括号的情况
      • 可以使用圆括号的情况
    • 用途
  • 字符串的扩展
    • 字符的Unicode表示法
    • codePointAt()
    • String.fromCodePoint()
    • 字符串的遍历器接口
    • at()
    • normalize()
    • includes(), startsWith(), endsWith()
    • repeat()
    • padStart(),padEnd()
    • 模板字符串
    • 实例:模板编译
    • 标签模板
    • String.raw()
  • 正则的扩展
    • RegExp构造函数
    • 字符串的正则方法
    • u修饰符
    • y修饰符
    • sticky属性
    • flags属性
    • RegExp.escape()
    • 后行断言
  • 数组的扩展
    • Array.from()
    • Array.of()
    • 数组实例的copyWithin()
    • 数组实例的find()和findIndex()
    • 数组实例的fill()
    • 数组实例的entries(),keys()和values()
    • 数组实例的includes()
    • 数组的空位
  • 函数的扩展
    • 函数参数的默认值
      • 基本用法
      • 与解构赋值默认值结合使用
      • 参数默认值的位置
      • 函数的length属性
      • 作用域
      • 应用
      • rest参数
    • 扩展运算符
      • 含义
      • 替代数组的apply方法
      • 扩展运算符的应用
      • name属性
    • 箭头函数
      • 基本用法
      • 使用注意点
      • 嵌套的箭头函数
      • 函数绑定
    • 尾调用优化
      • 什么是尾调用?
      • 尾调用优化
      • 尾递归
      • 递归函数的改写
      • 严格模式
      • 尾递归优化的实现
    • 函数参数的尾逗号
  • 对象的扩展
    • 属性的简洁表示法
    • 属性名表达式
    • 方法的name属性
    • Object.is()
    • Object.assign()
      • 基本用法
      • 注意点
      • 常见用途
    • 属性的可枚举性
    • 属性的遍历
    • Object.values(),Object.entries()
      • Object.keys()
      • Object.values()
      • Object.entries
    • 对象的扩展运算符
    • Object.getOwnPropertyDescriptors()
  • Symbol
    • 概述
    • 作为属性名的Symbol
    • 实例:消除魔术字符串
    • 属性名的遍历
    • Symbol.for(),Symbol.keyFor()
    • 内置的Symbol值
      • Symbol.hasInstance
      • Symbol.isConcatSpreadable
      • Symbol.species
      • Symbol.match
      • Symbol.replace
      • Symbol.search
      • Symbol.split
      • Symbol.iterator
      • Symbol.toPrimitive
      • Symbol.toStringTag
      • Symbol.unscopables
  • Proxy和Reflect
    • Proxy概述
    • Proxy实例的方法
      • get()
      • apply()
      • has()
      • construct()
      • deleteProperty()
      • defineProperty()
      • enumerate()
      • getOwnPropertyDescriptor()
      • getPrototypeOf()
      • isExtensible()
      • ownKeys()
      • preventExtensions()
      • setPrototypeOf()
      • Proxy.revocable()
    • Reflect概述
    • Reflect对象的方法
  • 二进制数组
    • ArrayBuffer对象
      • 概述
      • ArrayBuffer.prototype.byteLength
      • ArrayBuffer.prototype.slice()
      • ArrayBuffer.isView()
    • TypedArray视图
      • 概述
      • 构造函数
      • 数组方法
      • 字节序
      • BYTES_PER_ELEMENT属性
      • ArrayBuffer与字符串的互相转换
      • 溢出
      • TypedArray.prototype.buffer
      • TypedArray.prototype.byteLength,TypedArray.prototype.byteOffset
      • TypedArray.prototype.length
      • TypedArray.prototype.set()
      • TypedArray.prototype.subarray()
      • TypedArray.prototype.slice()
      • TypedArray.of()
      • TypedArray.from()
    • 复合视图
    • DataView视图
    • 二进制数组的应用
      • AJAX
      • Canvas
      • WebSocket
      • Fetch API
      • File API
  • Set和Map数据结构
    • Set
      • 基本用法
      • Set实例的属性和方法
      • 遍历操作
      • WeakSet
    • Map
      • Map结构的目的和基本用法
      • 实例的属性和操作方法
      • 遍历方法
      • 与其他数据结构的互相转换
      • WeakMap
  • Iterator和for...of循环
    • Iterator(遍历器)的概念
    • 数据结构的默认Iterator接口
    • 调用Iterator接口的场合
    • 字符串的Iterator接口
    • Iterator接口与Generator函数
    • 遍历器对象的return(),throw()
    • for...of循环
    • 数组
    • Set和Map结构
    • 计算生成的数据结构
    • 类似数组的对象
    • 对象
    • 与其他遍历语法的比较
  • Generator函数
    • 简介
      • 基本概念
      • yield语句
      • 与Iterator接口的关系
      • next方法的参数
      • for...of循环
      • Generator.prototype.throw()
      • Generator.prototype.return()
      • yield*语句
      • 作为对象属性的Generator函数
    • 含义
      • Generator与状态机
      • Generator与协程
      • 应用
  • Promise对象
    • Promise的含义
    • 基本用法
    • Promise.prototype.then()
    • Promise.prototype.catch()
    • Promise.all()
    • Promise.race()
    • Promise.resolve()
    • Promise.reject()
    • 两个有用的附加方法
      • done()
      • finally()
    • 应用
      • 加载图片
      • Generator函数与Promise的结合
    • async函数
  • 异步操作和Async函数
    • 回调函数
    • Promise
    • Generator函数
      • 协程
      • Generator函数的概念
      • Generator函数的数据交换和错误处理
      • 异步任务的封装
    • Thunk函数
      • 参数的求值策略
      • Thunk函数的含义
      • JavaScript语言的Thunk函数
      • Thunkify模块
      • Generator 函数的流程管理
      • Thunk函数的自动流程管理
    • co模块
      • 基本用法
      • co模块的原理
      • 基于Promise对象的自动执行
      • co模块的源码
      • 处理并发的异步操作
    • async函数
      • 含义
      • async函数的实现
      • async函数的用法
      • 注意点
      • 与Promise、Generator的比较
  • Class
    • Class基本语法
      • 概述
      • constructor方法
      • 类的实例对象
      • name属性
      • Class表达式
      • 不存在变量提升
      • 严格模式
    • Class的继承
      • 基本用法
      • 类的prototype属性和__proto__属性
      • Extends 的继承目标
      • Object.getPrototypeOf()
      • super关键字
      • 实例的__proto__属性
      • 原生构造函数的继承
      • Class的取值函数(getter)和存值函数(setter)
      • Class的Generator方法
      • Class的静态方法
      • Class的静态属性和实例属性
      • new.target属性
      • Mixin模式的实现
  • Decorator
    • 类的修饰
    • 方法的修饰
    • 为什么修饰器不能用于函数?
    • core-decorators.js
    • 使用修饰器实现自动发布事件
    • Mixin
    • Trait
    • Babel转码器的支持
  • Module
    • 严格模式
    • export命令
    • import命令
    • 模块的整体加载
    • export default命令
    • 模块的继承
    • ES6模块加载的实质
    • 循环加载
    • CommonJS模块的加载原理
    • CommonJS模块的循环加载
    • ES6模块的循环加载
    • 跨模块常量
    • ES6模块的转码
      • ES6 module transpiler
      • SystemJS
  • 函数式编程
    • 函数合成
    • 参数倒置
    • 执行边界
    • 队列操作
    • 合并操作
    • 配对操作
    • 参考链接
  • Mixin
    • 含义
    • Trait
  • 编程风格
    • 块级作用域
      • let取代var
      • 全局常量和线程安全
    • 字符串
    • 解构赋值
    • 对象
    • 数组
    • 函数
    • Map结构
    • Class
    • 模块
    • ESLint的使用