
ES6
文章平均质量分 93
安和-
这个作者很懒,什么都没留下…
展开
-
ES —(函数扩展)
1)函数参数的默认值 ES6 之前,不能直接为函数的参数指定默认值。只能采用变通的方法,即在函数体内部通过判断来赋默认值。 ES6 允许为函数的参数设置默认值(可以是值,也可以是表达式),即直接写在参数定义的后面。 function foo (x = 0, y = 0){}注意: (1)使用参数默认值时,函数不能有同名参数。 function foo (x, x, y =原创 2017-08-16 14:11:31 · 3205 阅读 · 0 评论 -
ES6 —(async 函数)
1、含义 ES2017 标准引入 async 函数,是的异步操作变得更加方便。async 是 Generator 函数的语法糖,是将 Generator 函数的星号(*)替换成 async,将 yield 替换成 await 仅此而已。 async 函数完全可以看做是多个异步操作,包装成一个 Promise 对象,而 await 命令就是内部 then 命令的语法糖。 前文有一个 Gener原创 2017-08-31 20:38:27 · 1749 阅读 · 0 评论 -
ES6 —(Generator 函数的异步应用)
所谓 “异步”,简单说就是一个任务不是连续完成的,可以理解为该任务被人分成两段,先执行一段,然后转而执行其他任务,等做好了准备,再回头执行第二段。异步编程的方式:回调函数、事件监听、发布 / 订阅、Promise 对象、Generator 函数。Generator 函数的自动执行 Thunk、co函数。原创 2017-08-30 17:04:17 · 1771 阅读 · 0 评论 -
ES6 —(Generator 函数应用)
Generator 与状态机 异步操作的同步化表达 控制流管理 部署 Iterator 接口 作为数组结构原创 2017-08-29 20:30:45 · 1835 阅读 · 0 评论 -
ES6 —(Generator 函数的语法)
1、简介 Generator 函数是 ES6 提供的一种异步编程解决方案,语法行为与传统函数完全不同。从语法上,Generator 函数是一个状态机,封装了多个内部状态。执行 Generator 函数会返回一个遍历器对象,即它还是一个遍历器对象生成函数。返回的遍历器对象,可以依次遍历 Generator 函数内部的每一个状态。 Generator 函数有两个特征:一是,function...原创 2017-08-29 17:17:30 · 1713 阅读 · 1 评论 -
ES6 —(Iterator 和 for...of)
JavaScript 共有四种数据集合:数组Array、对象Object、Map、Set。后两个是 ES6 添加的。Iterator 是一种接口机制,为各种不同的数据结构提供统一的访问机制。任何数据结构只要部署了 Iterator 接口,就可以完成遍历操作(即依次处理该数据结构的所有成员)。 Iterator 的作用有三个:一是为各种数据结构提供一个统一的、简便的访问接口;二是使得数据结构的成员能够按某种次序排列原创 2017-08-29 08:50:29 · 1978 阅读 · 0 评论 -
ES6 — Symbol
1、概述 ES5 的对象属性名都是字符串,这容易造成属性名的冲突。于是,ES6 引入 了一种新的原始数据类型 Symbol 来保证每个属性的名字是独一无二的,从而解决了属性名冲突问题。 ES6 引入 Symbol 后 JavaScript 就有了七种数据类型:undefined、null、布尔值(Boolean)、字符串(String)、数值(Number)、对象(Object)、Symbo原创 2017-08-20 13:26:50 · 1482 阅读 · 0 评论 -
ES6 —(Set 和 Map 数据结构)
ES6 提供了新的数据结构 Set ,它类似于数组,但是成员的值都是唯一的,没有重复的值。 WeakSet 结构与 Set 结构类似,也是不重复的值的集合。但它的成员只能是对象,而不是其他类型的值。ES6 提供了 Map 数据结构。它类似于对象,也是键值对的集合,但“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键。WeakMap 结构与 Map 结构类似,也是用于生成键值对的集合。但只接受对象作为键名。原创 2017-08-28 14:36:59 · 1565 阅读 · 0 评论 -
ES6 —(Class 的基本语法)
JavaScript 生成实例对象的传统方法是通过构造函数。 ES6 引入了 Class(类)这个概念,作为对象的模板。通过 class 关键字,可以定义类。constructor 方法是类的默认方法,通过 new 命令生成对象实例时,自动调用该方法。一个类必须有 constructor 方法,如果没有显示定义,一个空的 constructor 方法会被默认添加。原创 2017-08-23 20:39:01 · 1918 阅读 · 0 评论 -
ES6 —(Module 的加载实现)
在 HTML 网页中,浏览器通过 <script> 加载 JavaScript 脚本。在 HTML 网页中,浏览器通过 <script> 加载 JavaScript 脚本。ES6 模块与 CommonJS 模块完全不同:CommonJS 模块输出的是一个值的拷贝、运行时加载,ES6 模块输出的是值的引用(不可修改)、编译时输出接口。Node 加载 CommonJS 模块与 ES6 模块。原创 2017-08-27 19:42:50 · 2040 阅读 · 0 评论 -
ES6 —(Module 的语法)
1、概述 在 ES6 之前,社区制定了一些模块加载方法,最主要的有 CommonJS 和 AMD 两种,前者用于服务器,后者用于浏览器。 ES6 在语言层面上,实现了模块功能,而且实现相当简单,完全可以取代 CommonJS 和 AMD 规范,称为浏览器和服务器通用的模块解决方案。 ES6 模块的设计思想,是尽量的模块化,使得编译时就能确定模块的依赖关系,以及输入和输出的变量。Comm...原创 2017-08-26 19:17:31 · 1578 阅读 · 0 评论 -
ES6 —(Class 的继承)
Class 可以通过 extends 关键字实现继承。如果在子类中显式定义了 constructor 则子类必须在 constructor 方法中调用 super 方法,否则会报错。super 这个关键字,既可以当作函数使用,又可以当作对象使用。在这两种情况下,它的用法完全不同。以前,这些原生构造函数无法继承。ES6 允许使用 extends 继承原生构造函数定义子类,因为 ES6 是先新建父类的实例对象 this原创 2017-08-24 21:23:37 · 1800 阅读 · 0 评论 -
ES6 —(字符串扩展)
ES6 加强了对 Unicode 的支持,并扩展可字符串对象。1)字符串 Unicode 表示法 js 允许采用 \uxxxx 形式表示一个字符,其中 xxxx 表示字符的 Unicode 码点。但是这种表示只限于码点在 \u0000 ~ \uFFFF 之间的字符。超出这个范围的字符,必须使用两个双字节的形式表示。 ES6 对于这一点进行了改进,只要将码点放入大括号,就能正确解读该字符。"\原创 2017-08-15 15:39:59 · 1563 阅读 · 0 评论 -
ES6 —(解构赋值)
ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring)。 如: let [a, b, c] = [1, 2, 3];//a => 1, b => 2, c=> 3; 本质上,这种写法属于“模式匹配”,只要等号两边的模式相同,左边的变量就会被赋予对应的值。数组的元素是按次序排列的,变量的取值由它的位置决定。注意原创 2017-08-14 15:22:08 · 1841 阅读 · 0 评论 -
ES6 —(let、const)
ES5 只有两种声明变量的方法: var 命令和 function 命令。 ES6 一共有6种声明变量的方法:新增了 let 、 const 、 import 令和 class 命令。ES6新增 let 命令来声明变量。它的用法类似于 var ,但是所声明的变量,只在 let 所在的代码块内有效。 const 声明一个只读变量,一旦声明,常量的值就不能改变。并且,const 声明的变量必须初始化,否则会报错。原创 2017-08-13 19:02:46 · 1641 阅读 · 1 评论 -
ES6 —(对象的扩展)
1、属性的简洁表示法 ES6 允许直接写入变量和函数,作为对象的属性。2、属性名表达式JS 定义对象的属性有两种方法:(1)直接用标识符作为属性名。 `obj.foo = true;` (2)用表达式作为属性名,即把表达式放在方括号内。3、方法的 name 属性。函数的 `name` 属性,返回函数名。对象方法也有函数,因此也有 `name` 属性。 4、Object.is()。5、Object.assign原创 2017-08-18 19:39:51 · 1620 阅读 · 0 评论 -
ES6 —(数组扩展)
1、扩展运算符 扩展运算符(...)将一个数组转为用逗号分隔的参数序列。扩展运算符后面可以放置表达式,也可以是一个空数组,若是空数组,则不产生任何效果。 const arr = [ ...(x > 0 ? ['a'] : []), 'b' ];[...[], 1] // [1]用途 (1)原创 2017-08-17 19:46:50 · 1744 阅读 · 0 评论 -
ES6 —(Promise)
1、概述 Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大。所谓的 Promise ,简单说就是一个容器,里面保存着某个未来才会结束的事件的结果(通常是一种异步操作)。 Promise 对象的两个特点: (1)对象的状态不受外界的影响。Promise 对象代表一个异步操作,有三种状态:Pending(进行中)、Fulfilled(已成功)、Re原创 2017-08-21 16:03:02 · 1535 阅读 · 0 评论