最新动态

ECMAScript6 参考链接

官方文件综合介绍let 和 const解构赋值字符串正则数值数组函数对象SymbolSet 和 MapProxy 和 ReflectPromise 对象IteratorGenerator异步操作和 Async 函数ClassDecoratorModule二进制数组SIMD工具官方文件ECMAScri...

ECMAScript6 最新提案

do 表达式throw 表达式链判断运算符直接输入 U+2028 和 U+2029函数的部分执行管道运算符数值分隔符BigInt 数据类型Math.signbit()本章介绍一些尚未进入标准、但很有希望的最新提案。do 表达式本质上,块级作用域是一个语句,将多个操作封装在一起,没有返回值。{ ...

ECMAScript6 ArrayBuffer的应用

ArrayBuffer 对象TypedArray 视图复合视图DataView 视图二进制数组的应用SharedArrayBufferAtomics 对象ArrayBuffer对象、TypedArray视图和DataView视图是 JavaScript 操作二进制数据的一个接口。这些对象早就存在,属...

ECMAScript6 读懂 ECMAScript 规格

概述术语抽象操作的标准流程相等运算符数组的空位数组的 map 方法概述规格文件是计算机语言的官方标准,详细描述语法规则和实现方法。一般来说,没有必要阅读规格,除非你要写编译器。因为规格写得非常抽象和精炼,又缺乏实例,不容易理解,而且对于解决实际的应用问题,帮助不大。但 是,如果你遇到疑难的语法问题...

ECMAScript6 编程风格

块级作用域字符串解构赋值对象数组函数Map 结构Class模块ESLint 的使用本章探讨如何将 ES6 的新语法,运用到编码实践之中,与传统的 JavaScript 语法结合在一起,写出合理的、易于阅读和维护的代码。多家公司和组织已经公开了它们的风格规范,下面的内容主要参考了 Airbnb 公司的...

ECMAScript6 Module 的加载实现

浏览器加载ES6 模块与 CommonJS 模块的差异Node 加载循环加载ES6 模块的转码上一章介绍了模块的语法,本章介绍如何在浏览器和 Node 之中加载 ES6 模块,以及实际开发中经常遇到的一些问题(比如循环加载)。浏览器加载传统方法HTML 网页中,浏览器通过<script>...

ECMAScript6 Module 的语法

概述严格模式export 命令import 命令模块的整体加载export default 命令export 与 import 的复合写法模块的继承跨模块常量import()概述历史上,JavaScript 一直没有模块(module)体系,无法将一个大程序拆分成互相依赖的小文件,再用简单的方法拼装...

ECMAScript6 Decorator修饰器

类的修饰方法的修饰为什么修饰器不能用于函数?core-decorators.js使用修饰器实现自动发布事件MixinTraitBabel 转码器的支持类的修饰许多面向对象的语言都有修饰器(Decorator)函数,用来修改类的行为。目前,有一个提案将这项功能,引入了 ECMAScript。@test...

ECMAScript6 Class 的继承

简介Object.getPrototypeOf()super 关键字类的 prototype 属性和__proto__属性原生构造函数的继承Mixin 模式的实现简介Class 可以通过extends关键字实现继承,这比 ES5 的通过修改原型链实现继承,要清晰和方便很多。class Point {...

ECMAScript6 Class 的基本语法

简介严格模式constructor 方法类的实例对象Class 表达式不存在变量提升私有方法和私有属性this 的指向name 属性Class 的取值函数(getter)和存值函数(setter)Class 的 Generator 方法Class 的静态方法Class 的静态属性和实例属性new.t...

ECMAScript6 async 函数

含义基本用法语法async 函数的实现原理与其他异步处理方法的比较实例:按顺序完成异步操作异步遍历器含义ES2017 标准引入了 async 函数,使得异步操作变得更加方便。async 函数是什么?一句话,它就是 Generator 函数的语法糖。前文有一个 Generator 函数,依次读取两个文...

ECMAScript6 Generator 函数的异步应用

传统方法基本概念Generator 函数Thunk 函数co 模块异步编程对 JavaScript 语言太重要。Javascript 语言的执行环境是“单线程”的,如果没有异步编程,根本没法用,非卡死不可。本章主要介绍 Generator 函数如何完成异步操作。传统方法ES6 诞生以前,异步编程的方...

ECMAScript6 Generator 函数的语法

简介next 方法的参数for...of 循环Generator.prototype.throw()Generator.prototype.return()next()、throw()、return() 的共同点yield* 表达式作为对象属性的 Generator 函数Generator 函数的t...

ECMAScript6 Iterator 和 for...of 循环

Iterator(遍历器)的概念默认 Iterator 接口调用 Iterator 接口的场合字符串的 Iterator 接口Iterator 接口与 Generator 函数遍历器对象的 return(),throw()for...of 循环Iterator(遍历器)的概念JavaScript 原...

ECMAScript6 Promise 对象

Promise 的含义基本用法Promise.prototype.then()Promise.prototype.catch()Promise.prototype.finally()Promise.all()Promise.race()Promise.resolve()Promise.reject(...

ECMAScript6 Reflect详解

概述静态方法实例:使用 Proxy 实现观察者模式概述Reflect对象与Proxy对象一样,也是 ES6 为了操作对象而提供的新 API。Reflect对象的设计目的有这样几个。(1) 将Object对象的一些明显属于语言内部的方法(比如Object.defineProperty),放到Refle...

ECMAScript6 Proxy模式

概述Proxy 实例的方法Proxy.revocable()this 问题实例:Web 服务的客户端概述Proxy 用于修改某些操作的默认行为,等同于在语言层面做出修改,所以属于一种“元编程”(meta programming),即对编程语言进行编程。Proxy 可以理解成,在目标对象之前架设一层“...

ECMAScript6 Set 和 Map 数据结构

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

ECMAScript6 Symbol的应用

概述作为属性名的 Symbol实例:消除魔术字符串属性名的遍历Symbol.for(),Symbol.keyFor()实例:模块的 Singleton 模式内置的 Symbol 值概述ES5 的对象属性名都是字符串,这容易造成属性名的冲突。比如,你使用了一个他人提供的对象,但又想为这个对象添加新的方...

ECMAScript6 对象的扩展

属性的简洁表示法属性名表达式方法的 name 属性Object.is()Object.assign()属性的可枚举性和遍历Object.getOwnPropertyDescriptors()__proto__属性,Object.setPrototypeOf(),Object.getPrototype...