随笔分类 - ES6
摘要:在ES5中,比较好的继承方式时,通过构造函数继承,继承属性;再通过原型链继承,继承方法; 而ES6中,直接通过extends关键字进行继承。 它们主要的区别在于: ES5中,先创建子类的实例this,再通过父类构造函数或原型向其上添加属性或方法;而ES6中,是先通过super创建父类实例this,再
阅读全文
摘要:forEach是用来遍历数组的方法,不会更改数组的值;不能使用continue、break等跳出循环。 for...in...主要用于遍历对象,取到键值对中的键。但也可以用来遍历数组。 for...of...用来遍历实现了Symbol.iterator的类数组数据类型。如数组、map、set、str
阅读全文
摘要:两者都是用来处理异步回调问题的。而async/await能将异步处理的像同步一般。 那么async/await相比于promise有什么优点呢? 简洁。前者不需要写.then,不需要给传入resolve和reject的匿名函数,也不需要定义data变量,节约了代码,也提升了可读性。 错误处理。前者可
阅读全文
摘要:1.参数是promise实例,直接返回这个实例本身,不做处理。 2.参数是一个thenable对象,即其中实现了then方法。则会将此对象生成为一个promise,状态为resolved,并调用其then方法。 3.参数是一个原始类型的数据,则直接返回一个状态为resolved的promise,并将
阅读全文
摘要:在CommonJs中,通过exports或module.exports来导出模块中的内容,通过require来导入 在ES6中,通过export或export default来导出模块中的内容,通过import来导入 他们的主要区别有: CommonJS中,对于导入的数据,如果是原始类型的数据,是进
阅读全文
摘要:这两个方法,都是并行执行多个异步操作。而不同的是,all方式遵循“谁跑得慢,以谁为准执行回调”,而race遵循的是“谁跑的快,以谁为准执行回调” 以下为两个异步函数 function yibu1() { var p1 = new Promise((resolve, reject) => { setT
阅读全文
摘要:this指向问题 在普通函数中,this指向根据其使用场景不同改变。而箭头函数中的this始终指向其父级作用域 箭头函数不能作为构造函数 var Person = p => { this.name = p; } 此时的this并不是指向实例对象,而是指向父级作用域,指向window,所以不能作为构造
阅读全文
摘要:extends class Point { } class ColorPoint extends Point { } 通过extends关键字,实现子类对父类的继承 但是在继承父类时,必须使用super关键字,调用父类的构造方法,首先生成一个父类的this对象,得到与父类相同的属性或方法,再对其进行
阅读全文
摘要:class Point{ constructor(x, y){ this.x = x; this.y = y; } tostring(){ return '(' + this.x + ', ' + this.y + ')'; } } 在以上代码中,constructor就是构造方法,this关键字就
阅读全文
摘要:什么是async函数? Generator的语法糖,让异步操作变得更加方便 const asyncFunc = async funtion(){ const f1 = await readFile('./a.txt') const f2 = await readFile('./b.txt') con
阅读全文
摘要:什么是生成器? ES6的新语法,并不直接执行逻辑,而是生成一个对象--迭代器,通过调用这个对象的next()方法,来一步步向后走。执行完一个yield关键字就会停止,等待下一次next()调用。 funtion* myLogin(){ yield 2; yield 5; return 10; }va
阅读全文
摘要:什么是迭代器? 统一的遍历数据的方式。 首先获取到迭代器的指针,初始时这个指针指向的是第一条数据之前。通过调用指针的next()方法,使指针指向下一条数据。每一个next()都会返回一个对象,其中包含两个属性,value表示想要获取的值,done是个布尔值,false表示当前指针指向有值,true表
阅读全文
摘要:promise通常用来解决回调地狱的问题,但也有几个不可忽视的缺点 promise一旦新建就会立即执行,无法中途取消 当处于pending状态时,无法得知当前处于哪一个状态,是刚刚开始还是刚刚结束 如果不设置回调函数,promise内部的错误就无法反映到外部 promise封装ajax时,由于pro
阅读全文
摘要:HTML5 WebSocket 允许服务端主动向客户端发送数据 浏览器和服务器只需完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输 节省服务器资源和带宽,实现更实时的通讯 创建websocket 第一个参数为目标路径 第二个参数为可选参数,可以是字符串或数组,用来表示子协议,这样
阅读全文
摘要:Map 类似于对象,其中储存键值对 通过new Map()创建,其中传入键值对 const mobilephone = new Map();mobilephone.set('HuaWei', '中国');mobilephone.set('Apple', '美国');mobilephone.set('
阅读全文
摘要:set 新增集合数据类型 其中的数据都是唯一的 不能通过索引获取值 通过new Set()创建,可以直接将数组传入 不同于对象,向其中添加数字类型数据和字符串类型数据是不一样的 API add() 向set类数组对象中加入元素,返回新生成的set delete() 从set类数组对象中删除指定元素,
阅读全文
摘要:Generator Generator生成器,是es6新增语法 书写方式如下 function后加上* yield 相当于return function* fruitslist() { yield 'grape'; yield 'watermelon'; yield 'mango'} 将其返回值赋值
阅读全文
摘要:Iterator接口 只有包含Iterator接口的数据结构才能被循环遍历 这些数据结构的原型方法中都有Symbol.iterator() 通过调用Symbol.iterator()的next方法,就可以遍历到一个个元素 //当数组还没遍历完,则返回一个对象,第一个值为属性值,第二个值为false{
阅读全文
摘要:class 实际上是一个function,但不存在函数提升 同样可以通过两种方式定义 class User{}//或者var User = class { } 在其中通过构造函数声明属性,可以通过计算属性声明 constructor(name, email) { this.name = name;
阅读全文
摘要:数据类型Symbol JavaScript中第七种数据类型 通过Symbol定义的数据是唯一的 不可以用之前的方式遍历 声明定义方式 var Mary = Symbol('Mary');//或者为空 只能通过Object.getOwnPropertySymbols(变量名)的方式遍历数据为Symbo
阅读全文

浙公网安备 33010602011771号