es6和es6,es5和es6的新特性
本教程运行环境:windows7系统,ECMAScript 5 ECMAScript版本6,Dell G3电脑。
与ES5相比,ES6增加了许多东西,例如:
一、新增箭头函数
箭头函数解决的问题
简化写作。箭头适用于函数体只有一行的情况;当有多行时,可以使用普通函数来增加可读性。少打代码,结构清晰
清除这个。JS的传统this是在运行时确定的,而不是在定义时确定的;arrow函数的this是在定义时确定的,不能更改,也不能通过call、apply、bind、bind等方法修改。明确运行时候this指向谁,不用运行时判断this指向
注意:arrow函数没有自己的this,his的this是外层的this,指向一个不是arrow函数的函数的前一个this。因为js的机制,它指向一个不是箭头函数的函数的作用域。
箭头函数与普通函数的区别
函数的普通声明是变量提升中最高的,箭头函数没有函数提升。
函数的箭头不是this,函数体内的this对象是定义它的对象,而不是使用它的对象。
箭头没有arguments对象,该对象不存在于函数体中。如果要使用,可以使用rest参数。
箭头不能用作构造函数,不能是新的,并且没有属性。
和callapply方法有应用参数,但没有范围。
不能使用yield命令,所以箭头函数不能是生成器函数。
二、块级作用域
ES6中的let命令声明变量,用法与var类似,但let为JavaScript增加了一个块级作用域。ES5中没有块级作用域,var有变量提升的概念。但是,在let中,使用的变量必须声明。Const声明常量
ES6中变量的结构赋值,如:var [a,b,c]=[0,1,2];
三、类继承
ES6不再像ES5一样使用原型链实现继承,而是引入了类的概念,听起来和Java中面向对象编程的语法很像,但它们是不同的。
四、设置默认函数参数
可以在ES6中设置默认的函数参数,比如函数A(x,y=9){ };
五、promise
Promise应运而生:解决回调地狱问题,处理异步请求。
承诺用法:链式调用,成功和失败回调,三种状态,挂起状态变化时触发。状态一旦改变,就再也不会改变。
六、模板字符串
七、赋值结构
【推荐学习:javascript高级教程】以上是es6和es5区别的细节。更多请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。