ES6学习笔记 -- 阮一峰
学习阮一峰的ES6教程
邪人君子
毕业于云南大学,电子信息工程专业。工作期间独立负责移动端项目开发,熟悉nginx建站流程,有linux环境开发经验,有iOS、Android端企业级应用的打包发布经验,有移动端首页白屏优化经验
展开
-
ES6--18 遍历器生成 -- async 函数
目录async 函数含义基本用法语法返回 Promise 对象Promise 对象的状态变化await 命令错误处理使用注意点与其他异步处理方法的比较async 函数含义ES2017 标准引入了 async 函数,使得异步操作变得更加方便。async 函数是什么?一句话,它就是 Generator 函数的语法糖。const gen = function* () { const f1 = yield console.log('1'); const f2 = yield console.log转载 2020-05-26 09:18:20 · 215 阅读 · 0 评论 -
ES6--17 遍历器生成 -- Generator 函数
Generator 函数的语法简介基本概念Generator 函数是 ES6 提供的一种异步编程解决方案,语法行为与传统函数完全不同。执行 Generator 函数还是一个遍历器对象生成函数。返回的遍历器对象,可以依次遍历 Generator 函数内部的每一个状态。形式上,Generator 函数是一个普通函数,但是有两个特征。一是,function关键字与函数名之间有一个星号;二是,函数体内部使用yield表达式,定义不同的内部状态(yield在英语里的意思就是“产出”)。function转载 2020-05-25 16:32:18 · 696 阅读 · 0 评论 -
ES6--16 遍历器 Iterator 和 for...of 循环
Iterator 和 for…of 循环Iterator(遍历器)的概念JavaScript 原有的表示“集合”的数据结构,主要是数组(Array)和对象(Object),ES6 又添加了Map和Set。这样就有了四种数据集合,用户还可以组合使用它们,定义自己的数据结构,比如数组的成员是Map,Map的成员是对象。这样就需要一种统一的接口机制,来处理所有不同的数据结构。遍历器(Iterato...转载 2020-05-08 18:30:20 · 298 阅读 · 0 评论 -
ES6--15 异步调用 -- Promise 对象
本节目录Promise 的含义基本用法链式回调 -- Promise.prototype.then()错误回调 -- Promise.prototype.catch()总是回调 -- Promise.prototype.finally()&& 多个异步调用 -- Promise.all()|| 多个异步调用 -- Promise.race()|| 多个异步调用 -- Promise...转载 2020-01-14 19:53:26 · 270 阅读 · 0 评论 -
ES6--14 对象的默认方法 -- Reflect 对象
Reflect概述Reflect对象与Proxy对象一样,也是 ES6 为了操作对象而提供的新 API。Reflect对象的设计目的有这样几个。(1) 将Object对象的一些明显属于语言内部的方法,放到Reflect对象上。现阶段,某些方法同时在Object和Reflect对象上部署,未来的新方法将只部署在Reflect对象上。也就是说,从Reflect对象上可以拿到语言内部的方法。(2...转载 2020-01-14 10:04:51 · 314 阅读 · 0 评论 -
ES6--13 对象的代理拦截 -- Proxy构造函数
本节目录Proxy 构造函数的两个参数Proxy 实例的方法属性读取拦截 -- get()属性赋值拦截 -- set()函数调用拦截 -- apply()函数查询拦截 -- has()构造函数拦截 -- construct()属性删除拦截 -- deleteProperty()添加属性拦截 -- defineProperty()描述对象拦截 -- getOwnPropertyDescriptor(...转载 2020-01-13 19:24:56 · 946 阅读 · 0 评论 -
ES6--12 Set、WeakSet 和 Map、WeakMap 数据结构
本节目录Set 和 Map 数据结构Set -- 类数组数据结构Set 实例的操作方法Set 实例的遍历方法WeakSetWeakSet 的特点WeakSet 的语法Map -- 类对象数据结构map 实例的操作方法map 实例的遍历方法与其他数据结构的互相转换WeakMapWeakMap 的特点WeakMap 的语法WeakMap 的用途Set 和 Map 数据结构Set – 类数组数据结构...转载 2020-01-13 15:49:01 · 196 阅读 · 0 评论 -
ES6--11 第七种数据类型 --- Symbol
本节目录第七种数据类型 -- SymbolSymbol.prototype.description作为属性名的 Symbol实例:消除魔术字符串属性名的遍历Symbol.for(),Symbol.keyFor()实例:模块的 Singleton 模式内置的 Symbol 值Symbol.hasInstanceSymbol.isConcatSpreadableSymbol.speciesSymbol...转载 2020-01-13 11:20:27 · 147 阅读 · 0 评论 -
ES6--10 对象的合并、原型对象和遍历
本节目录对象的新增方法Object.is() --- 严格相等比较符Object.assign() --- 合并对象基本用法注意点常见用途读取和设置原型对象`__proto__`属性Object.setPrototypeOf()Object.getPrototypeOf()对象转换为数组Object.keys()Object.values()Object.entries()Object.fromE...转载 2020-01-10 16:50:12 · 342 阅读 · 0 评论 -
ES6--09 对象的简洁写法、扩展运算符和判断运算符
本节目录对象的扩展对象属性和方法的简洁写法属性的可枚举性和遍历可枚举性属性的遍历super 关键字对象的扩展运算符解构赋值扩展运算符链判断运算符Null 判断运算符对象的扩展对象属性和方法的简洁写法ES6 允许在大括号里面,直接写入变量和函数,作为对象的属性和方法。这样的书写更加简洁。const foo = 'bar';const baz = {foo};baz // {foo: "b...转载 2020-01-10 11:21:56 · 755 阅读 · 0 评论 -
ES6--08 关于扩展运算符 和 数组实例的新增方法
本节目录数组的扩展扩展运算符(...)含义替代函数的 apply 方法扩展运算符的应用Array.from()Array.of()数组实例的 copyWithin()数组实例的 find() 和 findIndex()数组实例的 fill()数组实例的 entries(),keys() 和 values()数组实例的 includes()数组实例的 flat(),flatMap()数组的扩展扩...转载 2020-01-09 17:08:25 · 636 阅读 · 0 评论 -
ES6--07 rest参数 和 箭头函数的this指向
本节目录函数参数的默认值基本用法与解构赋值默认值结合使用两种写法的区别参数默认值的位置函数的 length 属性作用域应用rest 参数严格模式name 属性箭头函数基本用法使用注意点不适用场合嵌套的箭头函数尾调用优化什么是尾调用?尾调用优化尾递归递归函数的改写严格模式尾递归优化的实现函数参数的尾逗号函数参数的默认值基本用法ES6 之前,不能直接为函数的参数指定默认值,只能采用变通的方法。...转载 2020-01-08 23:59:36 · 545 阅读 · 0 评论 -
ES6--06 数值的扩展
本节目录Math 对象的扩展二进制和八进制表示法Number.isFinite(), Number.isNaN()Number.parseInt(), Number.parseFloat()Number.isInteger()Number.EPSILON安全整数和 Number.isSafeInteger()Math 对象的扩展Math.trunc()Math.sign()Math.cbrt()M...转载 2019-08-08 09:22:59 · 337 阅读 · 0 评论 -
ES6--05 正则的扩展(只瞟了一眼)
本节目录RegExp 构造函数u 修饰符RegExp.prototype.unicode 属性y 修饰符RegExp.prototype.sticky 属性RegExp.prototype.flags 属性s 修饰符:dotAll 模式后行断言Unicode 属性类具名组匹配简介解构赋值和替换引用String.prototype.matchAllRegExp 构造函数在 ES5 中,RegEx...转载 2019-08-07 17:54:28 · 345 阅读 · 0 评论 -
ES6--04 字符串的新增方法
本节目录String.fromCodePoint()String.raw()实例方法:codePointAt()实例方法:includes(), startsWith(), endsWith()实例方法:repeat()实例方法:padStart(),padEnd()实例方法:trimStart(),trimEnd()实例方法:matchAll()String.fromCodePoint()E...转载 2019-08-06 22:42:04 · 280 阅读 · 0 评论 -
ES6--03 字符串的扩展
本节目录for...of 遍历字符串模板字符串保留格式消除换行嵌入变量调用函数模板字符串嵌套实例:模板编译 ---- 回头看标签模板模板字符串的限制for…of 遍历字符串ES6 为字符串添加了遍历器接口,使得字符串可以被for...of循环遍历。for (let codePoint of 'foo') { console.log(codePoint)}// "f"// "o"/...转载 2019-08-06 21:25:30 · 281 阅读 · 0 评论 -
ES6--02 数组和对象的解构赋值
变量的解构赋值数组的解构赋值基本用法ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring)。以前,为变量赋值,只能直接指定值。let a = 1;let b = 2;let c = 3;ES6 允许写成下面这样。let [a, b, c] = [1, 2, 3];上面代码表示,可以从数组中提取值,按照对应位置,对变量赋值。...转载 2019-08-06 11:00:03 · 299 阅读 · 0 评论 -
ES6--01 let 和 const 命令
let 声明的变量只在 let 命令所在的代码块内有效。const 声明一个只读的常量,一旦声明,常量的值就不能改变。本节目录let 的基本用方法关于 for 循环let 不存在变量提升暂时性死区不允许重复声明块级作用域与函数声明const 的基本用法const 的本质冻结对象let 的基本用方法ES6 新增了let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let...转载 2019-08-06 10:35:32 · 119 阅读 · 0 评论