
ES6
文章平均质量分 88
仇益阳
技术无罪
展开
-
ES8之async函数
什么是async函数async 函数是什么?一句话,它就是 Generator 函数的语法糖。基本用法async函数返回一个 Promise对象,可以使用then方法添加回调函数。当函数执行的时候,一旦遇到await就会先返回,等到异步操作完成,再接着执行函数体内后面的语句。async函数内部return语句返回的值,会成为then方法回调函数的参数。async function getS...原创 2019-12-22 20:57:52 · 11840 阅读 · 4 评论 -
ES6之用模块封装代码
什么是模块?模块( Modules )是使用不同方式加载的 JS文件(与JS原先的脚本加载方式相对)。这种不同模式很有必要,因为它与脚本( script )有大大不同的语义:模块代码自动运行在严格模式下,并且没有任何办法跳出严格模式;在模块的顶级作用域创建的变量,不会被自动添加到共享的全局作用域,它们只会在模块顶级作用域的内部存在;模块顶级作用域的 this 值为 undefined ;...原创 2019-12-22 01:24:53 · 11492 阅读 · 1 评论 -
ES6之Proxy代理
什么是Proxy代理ES6 让开发者能进一步接近 JS 引擎的能力,这些能力原先只存在于内置对象上。语言通过代理( proxy )暴露了在对象上的内部工作,代理是一种封装,能够拦截并改变 JS 引擎的底层操作。人话是:把代理看做是设计模式代理模式中的一种,有一个代理对象来代理本体,而ES6的Proxy牛逼的一点是可以把本体没法改变的内部属性改了代理与反射是什么?通过调用 new Pro...原创 2019-12-20 23:17:43 · 12024 阅读 · 0 评论 -
ES6之增强的数组功能
Array.of()解决创建数组时的怪异行为, Array.of() 方法总会创建一个包含所有传入参数的数组,而不管参数的数量与类型。下Array.from()将可迭代对象或者类数组对象作为第一个参数传入,Array.from()就能返回一个数组。也就意味着将任意包含 Symbol.iterator属性的对象转换为数组。如果你想实行进一步的数组转换,你可以向Array.from()方法传递...原创 2019-12-20 01:14:57 · 11866 阅读 · 1 评论 -
ES6之Promise
Promise 基础Promise 是为异步操作的结果所准备的占位符。是解决异步编程的一种方法,是规避回调地狱(callbacl hell)的一种解决方案Promise 的生命周期创建时是一个未决状态,白话文就是还没有决定结果已完成( fulfilled ): Promise 的异步操作已成功结束;已拒绝( rejected ): Promise 的异步操作未成功结束,可能是一个错误,...原创 2019-12-20 01:00:54 · 12177 阅读 · 0 评论 -
ES6之JS的类
基本的类声明类声明以 class 关键字开始,其后是类的名称;剩余部分的语法看起来就像对象字面量中的方法简写,并且在方法之间不需要使用逗号。class PersonClass { // 等价于 PersonType 构造器 constructor(name) { this.name = name; } // 等价于 PersonType.pro...原创 2019-12-18 23:39:04 · 11751 阅读 · 0 评论 -
ES6之迭代器
什么是迭代器?迭代器是被设计专用于迭代的对象,带有特定接口。所有的迭代器对象都拥有 next() 方法,会返回一个结果对象。该结果对象有两个属性:对应下一个值的 value ,以及一个布尔类型的 done ,其值为 true 时表示没有更多值可供使用。迭代器持有一个指向集合位置的内部指针,每当调用了 next() 方法,迭代器就会返回相应的下一个值。若你在最后一个值返回后再调用 next...原创 2019-12-18 17:49:32 · 11707 阅读 · 0 评论 -
ES6之Set与Map
什么是Set和Map?Set 是不包含重复值的列表。你一般不会像对待数组那样来访问 Set 中的某个项;相反更常见的是,只在 Set 中检查某个值是否存在。Map 则是键与相对应的值的集合。因此,Map中的每个项都存储了两块数据,通过指定所需读取的键即可检索对应的值。 Map 常被用作缓存,存储数据以便此后快速检索。创建 Set 并添加项目Set 使用 new Set() 来创建,而调用...原创 2019-12-17 23:45:35 · 12063 阅读 · 0 评论 -
ES6之符号与符号属性
引在 JS 已有的基本类型(字符串、数值、布尔类型、 null 与 undefined )之外, ES6 引入了一种新的基本类型:符号(Symbol)。符号起初被设计用于创建对象私有成员,而这也是 JS 开发者期待已久的特性。在符号诞生之前,将字符串作为属性名称导致属性可以被轻易访问,无论命名规则如何。而“私有名称”意味着开发者可以创建非字符串类型的属性名称,由此可以防止使用常规手段来探查这些名...原创 2019-12-16 23:50:02 · 13170 阅读 · 0 评论 -
ES6之解构
对象解构let node = { type: "Identifier", name: "foo"};let { type, name } = node;console.log(type); // "Identifier"console.log(name); // "foo"解构赋值let node = { type: "Identifier", n...原创 2019-12-16 23:48:42 · 12498 阅读 · 0 评论 -
ES6之 let,const
var 声明与变量提升var是js的变量声明语句,使用var声明的变量,无论其声明的实际语句在何处,都会被提升到所在函数的顶部(如果声明不在任意函数内,则视为在全局作用域的顶部),这种特性就叫做变量提升。声明式函数也有同样特性我们来解释一下变量提升:// 浏览器V8处理前console.log(single) //undefinedvar single=1// 浏览器V8引擎...原创 2019-12-12 23:26:07 · 13249 阅读 · 0 评论 -
ES6之字符串
字符串方法去除首尾空格:trim()includes()方法:在给定文本存在于字符串中的任意位置时会返回 true ,否则返回false;startsWith()方法:在给定文本出现在字符串起始处时返回 true ,否则返回 false;endsWith()方法:在给定文本出现在字符串结尾处时返回 true ,否则返回 false。repeat():重复字符串次数模板字面量模板...原创 2019-12-14 00:00:38 · 11718 阅读 · 0 评论 -
ES6之函数
带默认参数的函数在 ES5 或更早的版本中,你可能会使用下述模式来创建带有参数默认值的函数:function makeRequest(url, callback) { callback = callback || function() {}; // 函数的剩余部分}ES6 能更容易地为参数提供默认值,它使用了初始化形式,以便在参数未被正式传递进来时使用。例如:func...原创 2019-12-14 23:57:31 · 11613 阅读 · 0 评论 -
ES6之扩展的对象功能
对象的类别普通对象:拥有 JS 对象所有默认的内部行为。奇异对象:其内部行为在某些方面有别于默认行为。标准对象:在 ES6 中被定义的对象,例如 Array 、 Date ,等等。标准对象可以是普通的,也可以是奇异的。内置对象:在脚本开始运行时由 JS 运行环境提供的对象。所有的标准对象都是内置对象。对象字面量语法的扩展ES6 用几种方式扩展了对象字面量,将这种对象字面量语法...原创 2019-12-15 14:20:48 · 11806 阅读 · 1 评论