ES5和ES6的不同点

ECMAScript 5 (ES5): 第5个ECMAScript版本,于2009年标准化。该标准几乎所有的浏览器都完全支持。

ECMAScript 6 (ES6)/ECMAScript 2015 (ES2015): 第6个ECMAScript版本,于2015年标准化。目前各大浏览器还只是部分支持。

接下来介绍它们主要的区别:

箭头函数和字符串嵌入:

constgreetings=(name)=>{return`hello ${name}`;}

甚至:

constgreetings=name=>`hello ${name}`;

常量声明(Const): 如同其它编程语言中的常量一样,但又有不同。这里的const代表了constant reference。也就是说,你可以修改其指向的对象的值。但是你不能修改其reference的值。

constNAMES=[];NAMES.push("Jim");console.log(NAMES.length===1);// trueNAMES=["Steve","John"];// error

块作用域变量:ES6中的新关键字let允许允许开发者将变量的作用域限定在块级别。不会像var一样变量提升。

参数默认值:允许在函数定义的时候指定默认的值。

// Basic syntaxfunctionmultiply(a,b=2){returna*b;}multiply(5);// 10

类定义和继承

ES6开始支持定义类(使用class关键字),构造函数(使用constructor关键字),和extend关键字来实现继承。

for-of操作

for...of语句用来迭代访问一个对象的所有属性。

Spread操作符:用于对象合并

constobj1={a:1,b:2}constobj2={a:2,c:3,d:4}constobj3={...obj1,...obj2}

Promise: Promises提供了一个处理异步操作的方法。你可以用回调函数来实现,但是Promise更加简洁和可读。

constisGreater=(a,b)=>{returnnewPromise((resolve,reject)=>{if(a>b){resolve(true)}else{reject(false)}})}isGreater(1,2).then(result=>{console.log('greater')}).catch(result=>{console.log('smaller')})

模块的export和import。

constmyModule={x:1,y:()=>{console.log('This is ES5')}}exportdefaultmyModule;

importmyModulefrom'./myModule';

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容