ES6
文章平均质量分 85
builder2991
✌
展开
-
ES6之Promise 对象
16 Promise 对象16.1 Promise 的含义Promise 是异步编程的一种解决方案,比传统的解决方案 —— 回调函数和事件 —— 更合理和更强大。它由社区最早提出和实现, ES6 将其写进了语言标准,统一了用法,原生提供了Promise对象。所谓Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。从语法上说, Promise 是...原创 2020-04-17 21:07:11 · 178 阅读 · 0 评论 -
ES6之对象的扩展
9 对象的扩展9.1 属性的简洁表示法ES6 允许直接写入变量和函数,作为对象的属性和方法。这样的书写更加简洁。var foo = ‘bar’;var baz = {foo};baz // {foo: “bar”}// 等同于var baz = {foo: foo};上面代码表明, ES6 允许在对象之中,只写属性名,不写属性值。这时,属性值等于属性名所代表的变量。下面是另一...原创 2020-03-27 09:35:03 · 391 阅读 · 0 评论 -
ES6之Proxy 和 Reflect
11 Proxy 和 Reflect11.1 Proxy 概述Proxy 用于修改某些操作的默认行为,等同于在语言层面做出修改,所以属于一种 “ 元编程 ” ( meta programming ),即对编程语言进行编程。Proxy 可以理解成,在目标对象之前架设一层 “ 拦截 ” ,外界对该对象的访问,都必须先通过这层拦截,因此提供了一种机制,可以对外界的访问进行过滤和改写。 Proxy...原创 2020-03-26 16:35:35 · 483 阅读 · 0 评论 -
ES6之 二进制数组
12 二进制数组二进制数组(ArrayBuffer对象、 TypedArray 视图和DataView视图)是 JavaScript 操作二进制数据的一个接口。这些对象早就存在,属于独立的规格( 2011 年 2 月发布), ES6 将它们纳入了 ECMAScript 规格,并且增加了新的方法。这个接口的原始设计目的,与 WebGL 项目有关。所谓 WebGL ,就是指浏览器与显卡之间的通...原创 2020-03-26 11:50:07 · 869 阅读 · 0 评论 -
ES6之异步操作和 Async 函数
17 异步操作和 Async 函数异步编程对 JavaScript 语言太重要。 Javascript 语言的执行环境是 “ 单线程 ” 的,如果没有异步编程,根本没法用,非卡死不可。ES6 诞生以前,异步编程的方法,大概有下面四种。回调函数事件监听发布 / 订阅Promise 对象ES6 将 JavaScript 异步编程带入了一个全新的阶段, ES7 的Async函数更是提出...原创 2020-03-25 20:26:45 · 526 阅读 · 0 评论 -
ES6之 Module
20 ModuleES6 的 Class 只是面向对象编程的语法糖,升级了 ES5 的构造函数的原型链继承的写法,并没有解决模块化问题。 Module 功能就是为了解决这个问题而提出的。历史上, JavaScript 一直没有模块( module )体系,无法将一个大程序拆分成互相依赖的小文件,再用简单的方法拼装起来。其他语言都有这项功能,比如 Ruby 的require、 Python ...原创 2020-03-25 18:27:47 · 812 阅读 · 0 评论 -
ES6之Generator 函数
15 Generator 函数15.1 简介15.1.1 基本概念Generator 函数是 ES6 提供的一种异步编程解决方案,语法行为与传统函数完全不同。本章详细介绍 Generator 函数的语法和 API ,它的异步编程应用请看《异步操作》一章。Generator 函数有多种理解角度。从语法上,首先可以把它理解成, Generator 函数是一个状态机,封装了多个内部状态。...原创 2020-03-25 16:58:03 · 482 阅读 · 0 评论 -
ES6之Class
18 Class18.1 Class 基本语法18.1.1 概述JavaScript 语言的传统方法是通过构造函数,定义并生成新对象。下面是一个例子。function Point(x, y) {this.x = x;this.y = y;}Point.prototype.toString = function () {return ‘(’ + this.x + ', ’ + t...原创 2020-03-25 14:43:25 · 149 阅读 · 0 评论 -
ES6之 Iterator 和 for...of 循环
14 Iterator 和 for…of 循环14.1 Iterator (遍历器)的概念JavaScript 原有的表示 “ 集合 ” 的数据结构,主要是数组( Array )和对象( Object ), ES6 又添加了 Map 和 Set 。这样就有了四种数据集合,用户还可以组合使用它们,定义自己的数据结构,比如数组的成员是 Map , Map 的成员是对象。这样就需要一种统一的接口机...原创 2020-03-25 11:21:58 · 276 阅读 · 0 评论 -
ES6之Set 和 Map
13 Set 和 Map 数据结构13.1 Set13.1.1 基本用法ES6 提供了新的数据结构 Set 。它类似于数组,但是成员的值都是唯一的,没有重复的值。Set 本身是一个构造函数,用来生成 Set 数据结构。var s = new Set();[2, 3, 5, 4, 5, 2, 2].map(x => s.add(x));for (let i of s) {co...原创 2020-03-25 10:28:14 · 158 阅读 · 0 评论 -
ES6之Symbol
ES6之Symbol10.1 概述ES5 的对象属性名都是字符串,这容易造成属性名的冲突。比如,你使用了一个他人提供的对象,但又想为这个对象添加新的方法( mixin 模式),新方法的名字就有可能与现有方法产生冲突。如果有一种机制,保证每个属性的名字都是独一无二的就好了,这样就从根本上防止属性名的冲突。这就是 ES6 引入 Symbol 的原因。ES6 引入了一种新的原始数据类型 Sy...原创 2020-03-25 09:25:59 · 1193 阅读 · 0 评论 -
ES6之函数的扩展
ES6之函数的扩展函数参数的默认值基本用法在 ES6 之前,不能直接为函数的参数指定默认值,只能采用变通的方法。function log(x, y) { y = y || 'World'; console.log(x, y);}log('Hello') // Hello Worldlog('Hello', 'China') // Hello Chinalog('Hello', ...原创 2020-03-24 19:44:47 · 385 阅读 · 0 评论 -
ES6之数组的扩展
ES6之数组的扩展Array.from()Array.from方法用于将两类对象转为真正的数组:类似数组的对象( array-like object )和可遍历( iterable )的对象(包括 ES6 新增的数据结构 Set 和Map )下面是一个类似数组的对象,Array.from将它转为真正的数组。let arrayLike = { '0': 'a', '1': 'b', '...原创 2020-03-24 14:44:49 · 394 阅读 · 0 评论 -
ES6之数值的扩展
ES6之数值的扩展二进制和八进制表示法ES6 提供了二进制和八进制数值的新的写法,分别用前缀0b(或0B)和0o(或0O)表示。0b111110111 === 503 // true0o767 === 503 // true从 ES5 开始,在严格模式之中,八进制就不再允许使用前缀0表示, ES6 进一步明确,要使用前缀0o表示。// 非严格模式(function(){ con...原创 2020-03-24 14:17:31 · 263 阅读 · 0 评论 -
ES6之正则的扩展
ES6之正则的扩展RegExp 构造函数在 ES5 中, RegExp 构造函数的参数有两种情况。第一种情况是,参数是字符串,这时第二个参数表示正则表达式的修饰符( flag )。var regex = new RegExp('xyz', 'i');// 等价于var regex = /xyz/i;第二种情况是,参数是一个正则表示式,这时会返回一个原有正则表达式的拷贝。var ...原创 2020-03-24 11:50:05 · 234 阅读 · 0 评论 -
ES6之字符串的扩展
ES6之字符串的扩展ES6 加强了对 Unicode 的支持,并且扩展了字符串对象。字符的 Unicode 表示法JavaScript 允许采用\uxxxx形式表示一个字符,其中 “xxxx” 表示字符的码点。"\u0061"// "a"但是,这种表示法只限于\u0000 —— \uFFFF之间的字符。超出这个范围的字符,必须用两个双字节的形式表达。"\uD842\uDFB7"/...原创 2020-03-24 11:13:52 · 188 阅读 · 0 评论 -
ES6之变量的解构赋值
ES6之变量的解构赋值数组的解构赋值1.基本用法ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构( Destructuring )。以前,为变量赋值,只能直接指定值。var a = 1;var b = 2;var c = 3;ES6 允许写成下面这样。var [a, b, c] = [1, 2, 3];上面代码表示,可以从数组中提取值,按照对应位...原创 2020-03-24 10:09:12 · 199 阅读 · 0 评论 -
JavaScript和ES6中的Promise 对象
JavaScript和ES6中的Promise 对象Promise是异步编程的一种解决方案。ECMAscript 6 原生提供了 Promise 对象。从语法上说,Promise 是一个对象,从它可以获取异步操作的消息。Promise 对象代表了未来将要发生的事件,用来传递异步操作的消息。Promise 对象有以下两个特点:1. 对象的状态不受外界影响。Promise 对象代表一个异...原创 2020-03-22 17:25:34 · 219 阅读 · 0 评论 -
ES5和ES6箭头函数this简析
ES5和ES6箭头函数this简析箭头函数的作用:箭头函数让函数的书写变得很简洁,可读性更好解决了匿名函数this指向的问题(匿名函数的执行环境具有全局性),包括setTimeout和setInterval中使用this所造成的问题。ES5全局环境下,this 始终指向全局对象(window), 无论是否严格模式;console.log(this.document=== docum...原创 2020-03-17 10:49:45 · 1335 阅读 · 0 评论