ES6

面向对象

对象

万物皆对象。
定义:js中一组无序的相关属性和方法的集合

把公共方法、行为抽离出来,组成一个模板(类),通过实例化,继承类的方法和行为
ES6和JS的关系:是JS的规范,扩展新特性。

Es6新特性

const ,let , promise, class , filter, forEach, call, bind, apply,解构赋值, 浅拷贝:Object.assign(),
箭头函数, 扩展运算符, 模板字符串, Array.from( ), new Set( )、Map

Object.assign会合并对象生成一个新对象。如果对象的属性是普通类型改变,之后新对象不会改变,如果是引用类型改变后新对象也会改变,所以Object.assign实际上还是浅拷贝。
var obj={aa:1,b:{item:'45'}};
var newObj=Object.assign({},obj);
obj.aa=2;
obj.b.item='kk';
console.log(newObj.aa);        //1
console.log(newObj.b.item);    //kk

谈谈你对ES6的理解

es6是一个新的标准,它包含了许多新的语言特性和库,是JS最实质性的一次升级

比如箭头函数字符串模板generators(生成器)async/await解构赋值class等等,还有就是引入module模块的概念

async和await的优缺点

asyncawait 相比直接使用 Promise 来说,优势在于处理 then 的调用链,能够更清晰准确的写出代码。缺点在于滥用 await 可能会导致性能问题,因为 await 会阻塞代码,也许之后的异步代码并不依赖于前者,但仍然需要等待前者完成,导致代码失去了并发性

promise解决了什么问题,为什么会出现promise

  • 解决的问题

promise解决了回调地狱问题,回调地狱指的就是异步的嵌套,它带来两个问题:可读性问题和信任问题

  • promise优缺点

(1)优点:

让回调函数变成了规范的链式写法,程序流程可以看的很清楚。他有一整套接口,可以实现许多强大的功能,比如同时执行多个异步操作,等到他们的状态都改变以后,在执行一个回调函数;再比如,为多个回调函数中抛出的错误,统一制定处理方法…

​有一个传统写法没有的好处:他的状态一旦改变,无论何时查询,都能得到这个状态。这意味着无论何时为peomise实例添加回调函数,该函数都能正确执行。
传统写法的话都通过监听事件来执行回调函数,一旦错过了事件,再添加回调函数是不会执行的。

2)缺点:

编写的难度比传统写法高,而且阅读代码也不是一眼可以看懂。你只会看到一堆then,必须自己在then的回调函数里面理清逻辑。

为什么会出现生成器这个东西

生成器是一种可以用来控制迭代器(iterator)的函数,它可以随时暂停,并可以在任意时候恢复。就是可以再函数外部控制函数内部的执行

变量的解构

数组

1、等号两边的模式相同,也就是说对象的结构一样,(具有 length 属性的数据类型都 可以解构)
2、如果等号左边出现…,那么从…之前的一个变量往后所有的值都会放入一个数组
3、解构不成功全部为 undefined
4、数组解构时,等号右边必须为数组,任何类型的数据都会报错,(除字符串, arguments)
5、数组结构的默认值:只有数组成员严格等于 undifined 时默认值才会生效,否则不 生效, null === undifined 不成立
6、 默认值如果为函数,进行惰性求值,只有 undifined 进行使用默认值时,才会调用 函数

对象

1、对象的解构其实是模式的查找然后给对应的变量赋值,变量随便写,与模式无关, 且跟属性的顺序无关
2、变量的声明和赋值是一体的。必须同时进行
3、如果变量先定义,后赋值,在模式正确的情况下,用小括号进行包裹,此时赋值成 功;如果模式有歧义,es6 不建议用小括号
4、对象的嵌套解构,什么为模式,什么为赋值,对象从外层向内逐层解构
5、对象解构的默认值:只有对象的属性值严格等于 undifined 时默认值才会生效,否 则不生 效,null===undifined 不成立;
6、默认值的惰性求值;

其他

(1)数组解构为对象(特殊的对象),解构时,解析的模式为数组的下标;
(2)字符串解构为数组:首先把字符串转换为类数组的形式进行解构;
(3)数值和布尔值的解构,右边先转换为对象,然后对对象进行解构;都为 undefined
(4)参数的解构,如果给等号左边的变量赋默认值,如果右边对象没有值,就是用 默认值;如果默认值以对象的方式赋予,那么参数只有为空时才使用默认值
(5) null 和 undefined 解构为对象时,都报错

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值