
ES6
文章平均质量分 79
Gaozier
偶尔记记笔记~
展开
-
ES6—Module的语法
Module的语法概述严格模式export命令import命令模块的整体加载export与import的复合写法import()概述之前的模块加载方案:CommonJS和AMD// CommonJS模块,实质是加载fs的所有方法生成_fs对象,然后读取方法let { stat, exists, readFile } = require('fs')// 等同于let _fs = require('fs')let stat = _fs.statlet exists = _fs.exists原创 2021-05-17 14:57:49 · 216 阅读 · 0 评论 -
ES6—Class的继承
Class的继承简介Object.getPrototypeOf()super关键字作为函数作为对象类的prototype属性和_proto_属性extends的继承目标实例的__proto__属性原生构造函数的继承Mixin模式的实现简介extends关键字继承了父类的属性和方法super关键字表示父类的构造函数,用来新建父类的this对象/** * extends关键字继承了父类的属性和方法 */ // 如果子类继承父类但构造函数没有调用super方法,会导致新建实例时报错class原创 2021-05-14 15:59:42 · 151 阅读 · 0 评论 -
ES6—Class的基本语法
Class的基本语法简介严格模式constructor方法类的实例对象Class 表达式不存在变量提升私有方法私有属性this的指向name属性Class的取值函数(getter)和存值函数(setter)Class的Generator方法Class的静态方法Class的静态属性和实例属性Class的实例属性Class的静态属性new.target属性简介类的数据类型是函数,类本身指向构造函数普通的ES语法function Point(x, y) { this.x = x this.y原创 2021-05-13 16:10:00 · 234 阅读 · 0 评论 -
ES6—async函数
async函数含义用法语法返回Promise对象Promise对象的状态变化含义Generator函数的语法糖// *替换成async,yield替换成awaitvar asyncReadFile = async function () { var f1 = await readFile('/etc/fstab'); var f2 = await readFile('/etc/shells'); console.log(f1.toString());}async函数对Generator函原创 2021-05-11 19:41:32 · 151 阅读 · 0 评论 -
ES6—Generator函数的异步应用
Generator函数的异步应用传统方法基本概念异步回调函数PromiseGenerator函数协程协程的Generator函数实现Generator函数的数据交换和错误处理异步任务的封装Thunk函数参数的求值策略Thunk函数的含义Js的Thunk函数Thunkify模块Generator函数的流程管理Thunk函数的自动化流程管理co模块基本用法原理基于Promise对象的自动执行co模块的源码处理并发的异步操作传统方法回调函数事件监听发布/订阅Promise对象基本概念异步不连原创 2021-05-07 10:41:41 · 195 阅读 · 0 评论 -
ES6—Generator函数
Generator函数简介基本概念特征与Iterator接口的关系next方法参数for...of循环Generator.prototype.throw()Generator.prototype.return()yield*表达式作为对象属性的Generator函数Generator函数 this简介基本概念是一种异步编程解决方案可以看成一个状态机,封装了多个内部状态。执行Generator函数会返回一个遍历器对象特征function命令与函数名之间有一个星号函数体内部使用yield语原创 2021-04-29 15:27:07 · 218 阅读 · 0 评论 -
ES6—Iterator
Iterator(遍历器)为不同的数据结构提供统一的访问机制的接口(本质是一个指针对象)三大作用:为各种数据结构提供统一简便的访问接口使数组成员按某种次序排列主要供for…of消费默认的Iterator接口使用for…of循环遍历某种数据结构时,该循环会自动寻找Iterator接口原生具有Iterator接口的数据结构:ArrayMapSetStringTypedArray函数的arguments对象NodeList对象遍历器对象的next方法,在返回一个值的同时自动将原创 2021-04-25 16:02:32 · 119 阅读 · 0 评论 -
ES6—Reflect
概述Reflect对象的设计目的:(1)从Reflect对象上可以拿到语言内部的方法(2)修改某些Object方法的返回结果,让其变得更合理// 老写法try { Object.defineProperty(target, property, attributes); // success} catch (e) { // failure}// 新写法if (Reflect.defineProperty(target, property, attributes)) { //原创 2021-04-20 17:01:20 · 112 阅读 · 0 评论 -
ES6—Proxy
概述在目标对象前增添一层拦截,来代理某些操作,类似代理器//对一个空对象架设了一层拦截,重定义了属性的读取(get)和设置(set)行为var obj = new Proxy({}, { get: function (target, propKey, receiver) { console.log(`getting ${propKey}!`); return Reflect.get(target, propKey, receiver); }, set: function原创 2021-04-19 18:55:50 · 160 阅读 · 0 评论 -
ES6—Symbol
概述ES6引入新的原始数据类型Symbol,表示独一无二的值。Symbol值不是对象,不能添加属性,是一种类似字符串的数据类型,可以保证不会与其他属性名产生冲突。let s1 = Symbol('foo');let s2 = Symbol('bar');s1 // Symbol(foo)s2 // Symbol(bar)s1.toString() // "Symbol(foo)"s2.toString() // "Symbol(bar)"Symbol函数的参数只是表示对当前 S原创 2021-04-14 20:16:42 · 150 阅读 · 0 评论 -
ES6—Set和Map数据结构
Set基本语法类似于数组,但成员的值都是唯一的,没有重复的值。const s = new Set();[2, 3, 5, 4, 5, 2, 2].forEach(x => s.add(x));for (let i of s) { console.log(i);}// 2 3 5 4注意点:Set内部认为两个NaN是相等的;两个空对象不相等Set实例的属性和方法属性Set.prototype.constructor:构造函数,默认是Set函数Set.prototype.原创 2021-04-12 17:42:24 · 212 阅读 · 0 评论 -
ES6—正则表达式
正则表达式RegExp构造函数RegExp构造函数第一个参数是正则对象,第二个参数可以指定修饰符,且覆盖原有的修饰符new RegExp(/abc/efg,'i').flags// "i"字符串正则方法es6将与正则相关的方法全部定义在RegExp对象上match()replace()search()split()u修饰符即“Unicode模式”,正确处理大于\uFFF的Unicode字符点字符对于码点大于0xFFFF的Unicode 字符,加上u修饰符才能识别Unico原创 2021-04-11 14:15:24 · 811 阅读 · 0 评论