ES6

29 阅读2分钟

ES6的新特性

箭头函数,解构赋值,模块化,promise,async await

let和var的区别

1.let声明的变量不能重复声明

2.let声明的变量不能变量提升:

3.var是函数作用域,let是块状作用域:

4.var声明的变量会挂载在window上,而let和const声明的变量不会挂载到window上,它形成了一个块作用域

js中的this指向和es6中this的指向

this指向函数运⾏时所在的对象,es6箭头函数中this指向函数定义是所在的对象

箭头函数和普通函数的区别

1、外形不同:箭头函数使用箭头定义,普通函数中没有。

2、 箭头函数全都是匿名函数:普通函数可以有匿名函数,也可以有具名函数

3、箭头函数不能用于构造函数:普通函数可以用于构造函数,以此创建对象实例。

4、this 的指向不同:箭头函数没有自己的this, 它的this是继承而来; 默认指向在定义它时所处的对象(宿主对象),此处指父级作用域.在普通函数中,this 总是指向调用它的对象,如果用作构造函数,它指向创建的对象实例。

5、箭头函数不具有 arguments 对象:每一个普通函数调用后都具有一个

arguments 对象,用来存储实际传递的参数。但是箭头函数并没有此对象。

6、其他区别:箭头函数不具有 prototype 原型对象。箭头函数不具有 super。

箭头函数不具有 new.target

箭头函数能不能当构造函数来使用?

构造函数是通过new关键字来生成对象实例,生成对象实例的过程也是通过构造函数给实例绑定this的过程,而箭头函数没有自己的this。

ES5的继承和ES6的继承有什么区别

es5是先创建子类,实例化父类并添加到子类this中实现继承,es6是先创建父类,实例化子类,通过修改this实现继承。