随笔分类 -  ES6

摘要:1.含义 ES2017 标准引入了 async 函数,使得异步操作变得更加方便。 async 函数是什么?一句话,它就是 Generator 函数的语法糖。 前文有一个 Generator 函数,依次读取两个文件。 上面代码的函数 可以写成 函数,就是下面这样。 一比较就会发现, 函数就是将 Gen 阅读全文
posted @ 2020-03-23 10:23 珞珞9527 阅读(339) 评论(0) 推荐(0) 编辑
摘要:1.传统方法 ES6 诞生以前,异步编程的方法,大概有下面四种。 回调函数 事件监听 发布/订阅 Promise 对象 Generator 函数将 JavaScript 异步编程带入了一个全新的阶段。 2.基本概念 异步 所谓"异步",简单说就是一个任务不是连续完成的,可以理解成该任务被人为分成两段 阅读全文
posted @ 2020-03-22 21:04 珞珞9527 阅读(527) 评论(0) 推荐(0) 编辑
摘要:1.简介 基本概念 Generator 函数是 ES6 提供的一种 异步编程解决方案 ,语法行为与传统函数完全不同。本章详细介绍 Generator 函数的语法和 API,它的异步编程应用请看《Generator 函数的异步应用》一章。 Generator 函数有多种理解角度。语法上,首先可以把它理 阅读全文
posted @ 2020-03-22 11:21 珞珞9527 阅读(294) 评论(0) 推荐(0) 编辑
摘要:1.Iterator(遍历器)的概念 JavaScript 原有的表示“集合”的数据结构,主要是数组( )和对象( ),ES6 又添加了 和`Set Map Map`的成员是对象。这样就需要一种统一的接口机制,来处理所有不同的数据结构。 遍历器(Iterator)就是这样一种机制。它是一种接口,为各 阅读全文
posted @ 2020-03-18 10:47 珞珞9527 阅读(263) 评论(0) 推荐(0) 编辑
摘要:1.Promise 的含义 Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大。它由社区最早提出和实现,ES6 将其写进了语言标准,统一了用法,原生提供了 对象。 所谓 ,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。从 阅读全文
posted @ 2020-03-16 18:06 珞珞9527 阅读(3209) 评论(0) 推荐(0) 编辑
摘要:1.概述 对象与 对象一样,也是 ES6 为了操作对象而提供的新 API。 对象的设计目的有这样几个。 (1) 将 对象的一些明显属于语言内部的方法(比如 ),放到 对象上。现阶段,某些方法同时在 和`Reflect Reflect Reflect`对象上可以拿到语言内部的方法。 (2) 修改某些 阅读全文
posted @ 2020-03-16 11:39 珞珞9527 阅读(723) 评论(0) 推荐(0) 编辑
摘要:1.概述 Proxy 用于修改某些操作的默认行为,等同于在语言层面做出修改,所以属于一种“元编程”(meta programming),即对编程语言进行编程。 Proxy 可以理解成,在目标对象之前架设一层“拦截”,外界对该对象的访问,都必须先通过这层拦截,因此提供了一种机制,可以对外界的访问进行过 阅读全文
posted @ 2020-03-15 10:02 珞珞9527 阅读(1454) 评论(0) 推荐(0) 编辑
摘要:1.Set 基本用法 ES6 提供了新的数据结构 Set。它类似于数组,但是 成员的值都是唯一的 ,没有重复的值。 本身是一个构造函数,用来生成 Set 数据结构。 上面代码通过 方法向 Set 结构加入成员,结果表明 Set 结构不会添加重复的值。 函数可以接受一个数组(或者具有 iterable 阅读全文
posted @ 2020-03-03 15:24 珞珞9527 阅读(503) 评论(0) 推荐(0) 编辑
摘要:1.概述 ES5 的对象属性名都是字符串,这容易造成属性名的冲突。比如,你使用了一个他人提供的对象,但又想为这个对象添加新的方法(mixin 模式),新方法的名字就有可能与现有方法产生冲突。如果有一种机制,保证每个属性的名字都是独一无二的就好了,这样就从根本上防止属性名的冲突。这就是 ES6 引入 阅读全文
posted @ 2020-02-27 22:36 珞珞9527 阅读(332) 评论(0) 推荐(0) 编辑
摘要:1.Object.is() ES5 比较两个值是否相等,只有两个运算符:相等运算符( )和严格相等运算符( )。它们都有缺点,前者会自动转换数据类型,后者的 不等于自身,以及 等于 。JavaScript 缺乏一种运算,在所有环境中,只要两个值是一样的,它们就应该相等。 ES6 提出“Same va 阅读全文
posted @ 2020-02-27 09:59 珞珞9527 阅读(361) 评论(0) 推荐(0) 编辑
摘要:1.属性的简洁表示法 ES6 允许在大括号里面,直接写入变量和函数,作为对象的属性和方法。这样的书写更加简洁。 上面代码中,变量 直接写在大括号里面。这时,属性名就是变量名, 属性值就是变量值。下面是另一个例子。 除了属性简写,方法也可以简写。 下面是一个实际的例子。 这种写法用于函数的返回值,将会 阅读全文
posted @ 2020-02-24 10:22 珞珞9527 阅读(347) 评论(0) 推荐(0) 编辑
摘要:1.扩展运算符 含义 扩展运算符(spread)是三个点( )。它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列。 该运算符主要用于函数调用 。 上面代码中, 和`add(...numbers)`这两行,都是函数的调用,它们都使用了扩展运算符。该运算符将一个数组,变为参数序列。 扩 阅读全文
posted @ 2020-02-23 22:39 珞珞9527 阅读(247) 评论(0) 推荐(0) 编辑
摘要:1.函数参数的默认值 基本用法 ES6 之前,不能直接为函数的参数指定默认值,只能采用变通的方法。 这种写法的缺点在于,如果参数 赋值了,但是对应的布尔值为 ,则该赋值不起作用。就像上面代码的最后一行,参数 等于空字符,结果被改为默认值。 为了避免这个问题,通常需要先判断一下参数 是否被赋值,如果没 阅读全文
posted @ 2020-02-19 22:08 珞珞9527 阅读(328) 评论(0) 推荐(0) 编辑
摘要:1.二进制和八进制表示法 ES6 提供了二进制和八进制数值的新的写法,分别用前缀 (或 )和 (或 )表示。 从 ES5 开始,在严格模式之中,八进制就不再允许使用前缀 表示,ES6 进一步明确,要使用前缀 表示。 如果要将 和`0o Number`方法。 2.Number.isFinite(), 阅读全文
posted @ 2020-02-05 21:26 珞珞9527 阅读(295) 评论(0) 推荐(0) 编辑
摘要:1.RegExp 构造函数 在 ES5 中, 构造函数的参数有两种情况。 第一种情况是,参数是字符串,这时第二个参数表示正则表达式的修饰符(flag)。 第二种情况是,参数是一个正则表示式,这时会返回一个原有正则表达式的拷贝。 但是,ES5 不允许此时使用第二个参数添加修饰符,否则会报错。 ES6 阅读全文
posted @ 2020-02-05 21:25 珞珞9527 阅读(553) 评论(0) 推荐(0) 编辑
摘要:1.String.fromCodePoint() ES5 提供 方法,用于从 Unicode 码点返回对应字符,但是这个方法不能识别码点大于 的字符。 上面代码中, 不能识别大于 的码点,所以 就发生了溢出,最高位 被舍弃了,最后返回码点 对应的字符,而不是码点 对应的字符。 ES6 提供了 方法, 阅读全文
posted @ 2020-02-05 21:21 珞珞9527 阅读(271) 评论(0) 推荐(0) 编辑
摘要:1.字符的 Unicode 表示法 ES6 加强了对 Unicode 的支持,允许采用 形式表示一个字符,其中 表示字符的 Unicode 码点。 但是,这种表示法只限于码点在 ~`\uFFFF`之间的字符。超出这个范围的字符,必须用两个双字节的形式表示。 上面代码表示,如果直接在 后面跟上超过 的 阅读全文
posted @ 2020-02-05 21:20 珞珞9527 阅读(258) 评论(0) 推荐(0) 编辑
摘要:1.数组的解构赋值 基本用法 ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring)。 以前,为变量赋值,只能直接指定值。 ES6 允许写成下面这样。 上面代码表示,可以从数组中提取值,按照对应位置,对变量赋值。 本质上,这种写法属于“模式匹配”, 阅读全文
posted @ 2020-02-04 22:12 珞珞9527 阅读(290) 评论(0) 推荐(0) 编辑
摘要:1.let命令 基本用法 只在命令所在的代码块内(花括号内)有效。 循环的计数器,就很合适使用 命令。 ES6 声明变量的六种方法 ES5 只有两种声明变量的方法: 命令和 命令。 ES6 除了添加 和`const import class`命令。 4.顶层对象的属性 顶层对象,在浏览器环境指的是 阅读全文
posted @ 2020-02-04 22:10 珞珞9527 阅读(295) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示