avatar
JavaScript

Generator 函数的语法

Generator 函数是 ES6 提供的一种异步编程解决方案,语法行为与传统函数完全不同。本章详细介绍 Generator 函数的语法和 API,它的异步编程应用请看《Generator 函数的异步...

835    0    3 years ago



avatar
JavaScript

Iterator 和 for...of 循环

JavaScript 原有的表示“集合”的数据结构,主要是数组(`Array`)和对象(`Object`),ES6 又添加了`Map`和`Set`。这样就有了四种数据集合,用户还可以组合使用它们,定义...

798    0    3 years ago



avatar
JavaScript

Promise 对象

Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大。它由社区最早提出和实现,ES6 将其写进了语言标准,统一了用法,原生提供了`Promise`对象。...

845    0    3 years ago



avatar
JavaScript

Reflect

`Reflect`对象与`Proxy`对象一样,也是 ES6 为了操作对象而提供的新 API。`Reflect`对象的设计目的有这样几个。...

843    0    3 years ago



avatar
JavaScript

Proxy

Proxy 用于修改某些操作的默认行为,等同于在语言层面做出修改,所以属于一种“元编程”(meta programming),即对编程语言进行编程。...

820    0    3 years ago



avatar
JavaScript

Set 和 Map 数据结构

ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。`Set`本身是一个构造函数,用来生成 Set 数据结构。...

836    0    3 years ago



avatar
JavaScript

Symbol

ES5 的对象属性名都是字符串,这容易造成属性名的冲突。比如,你使用了一个他人提供的对象,但又想为这个对象添加新的方法(mixin 模式),新方法的名字就有可能与现有方法产生冲突。...

837    0    3 years ago



avatar
JavaScript

对象的新增方法

ES5 比较两个值是否相等,只有两个运算符:相等运算符(`==`)和严格相等运算符(`===`)。它们都有缺点,前者会自动转换数据类型,后者的`NaN`不等于自身,以及`+0`等于`-0`。JavaS...

836    0    3 years ago



avatar
JavaScript

对象的扩展

ES6 允许在大括号里面,直接写入变量和函数,作为对象的属性和方法。这样的书写更加简洁。变量`foo`直接写在大括号里面。这时,属性名就是变量名, 属性值就是变量值。下面是另一个例子。...

829    0    3 years ago



avatar
JavaScript

数组的扩展

扩展运算符(spread)是三个点(`...`)。它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列。...

820    0    3 years ago



avatar
JavaScript

函数的扩展

ES6 之前,不能直接为函数的参数指定默认值,只能采用变通的方法。上面代码检查函数`log`的参数`y`有没有赋值,如果没有,则指定默认值为`World`。...

867    0    3 years ago



avatar
JavaScript

数值的扩展

ES6 提供了二进制和八进制数值的新的写法,分别用前缀`0b`(或`0B`)和`0o`(或`0O`)表示。从 ES5 开始,在严格模式之中,八进制就不再允许使用前缀`0`表示,ES6 进一步明确,要使...

847    0    3 years ago