ES6之Proxy代理

什么是Proxy代理ES6 让开发者能进一步接近 JS 引擎的能力,这些能力原先只存在于内置对象上。语言通过代理( proxy )暴露了在对象上的内部工作,代理是一种封装,能够拦截并改变 JS 引擎的底层操作。人话是:把代理看做是设计模式代理模式中的一种,有一个代理对象来代理本体,而ES6的Proxy牛逼的一点是可以把本体没法改变的内部属性改了代理与反射是什么?通过调用 new Proxy() ,

- 阅读全文 -

ES6之Promise

Promise 基础Promise 是为异步操作的结果所准备的占位符。是解决异步编程的一种方法,是规避回调地狱(callbacK hell)的一种解决方案Promise 的生命周期创建时是一个未决状态,白话文就是还没有决定结果已完成( fulfilled ): Promise 的异步操作已成功结束;已拒绝( rejected ): Promise 的异步操作未成功结束,可能是一个错误,或由其他原因

- 阅读全文 -

ES6之增强的数组功能

Array.of()解决创建数组时的怪异行为, Array.of() 方法总会创建一个包含所有传入参数的数组,而不管参数的数量与类型。下Array.from()将可迭代对象或者类数组对象作为第一个参数传入,Array.from()就能返回一个数组。也就意味着将任意包含 Symbol.iterator属性的对象转换为数组。如果你想实行进一步的数组转换,你可以向Array.from()方法传递一个映射

- 阅读全文 -

ES6之JS的类

基本的类声明类声明以 class 关键字开始,其后是类的名称;剩余部分的语法看起来就像对象字面量中的方法简写,并且在方法之间不需要使用逗号。class PersonClass { // 等价于 PersonType 构造器 constructor(name) { this.name = name; } // 等价于 PersonType.protot

- 阅读全文 -

ES6之迭代器

什么是迭代器?迭代器是被设计专用于迭代的对象,带有特定接口。所有的迭代器对象都拥有 next() 方法,会返回一个结果对象。该结果对象有两个属性:对应下一个值的 value ,以及一个布尔类型的 done ,其值为 true 时表示没有更多值可供使用。迭代器持有一个指向集合位置的内部指针,每当调用了 next() 方法,迭代器就会返回相应的下一个值。若你在最后一个值返回后再调用 next() ,所

- 阅读全文 -

ES6之Set与Map

什么是Set和Map?Set 是不包含重复值的列表。你一般不会像对待数组那样来访问 Set 中的某个项;相反更常见的是,只在 Set 中检查某个值是否存在。Map 则是键与相对应的值的集合。因此,Map中的每个项都存储了两块数据,通过指定所需读取的键即可检索对应的值。 Map 常被用作缓存,存储数据以便此后快速检索。创建 Set 并添加项目Set 使用 new Set() 来创建,而调用 add(

- 阅读全文 -

ES6之符号与符号属性

引在 JS 已有的基本类型(字符串、数值、布尔类型、 null 与 undefined )之外, ES6 引入了一种新的基本类型:符号(Symbol)。符号起初被设计用于创建对象私有成员,而这也是 JS 开发者期待已久的特性。在符号诞生之前,将字符串作为属性名称导致属性可以被轻易访问,无论命名规则如何。而“私有名称”意味着开发者可以创建非字符串类型的属性名称,由此可以防止使用常规手段来探查这些名称

- 阅读全文 -

ES6之解构

对象解构let node = { type: "Identifier", name: "foo" }; let { type, name } = node; console.log(type); // "Identifier" console.log(name); // "foo" 解构赋值let no

- 阅读全文 -

ES6之扩展的对象功能

对象的类别普通对象:拥有 JS 对象所有默认的内部行为。奇异对象:其内部行为在某些方面有别于默认行为。标准对象:在 ES6 中被定义的对象,例如 Array 、 Date ,等等。标准对象可以是普通的,也可以是奇异的。内置对象:在脚本开始运行时由 JS 运行环境提供的对象。所有的标准对象都是内置对象。对象字面量语法的扩展ES6 用几种方式扩展了对象字面量,将这种对象字面量语法变得更加强大、更加简洁

- 阅读全文 -

ES6之函数

带默认参数的函数在 ES5 或更早的版本中,你可能会使用下述模式来创建带有参数默认值的函数:function makeRequest(url, callback) { callback = callback || function() {}; // 函数的剩余部分 } ES6 能更容易地为参数提供默认值,它使用了初始化形式,以便在参数未被正式传递进来时使用。例如:function

- 阅读全文 -