ES6特性简述

原创 2016年08月31日 10:56:59

1、箭头操作符

如果你会C#或者Java,你肯定知道lambda表达式,ES6中新增的箭头操作符=>便有异曲同工之妙。它简化了函数的书写。操作符左边为输入的参数,而右边则是进行的操作以及返回的值Inputs=>outputs。

我们知道在JS中回调是经常的事,而一般回调又以匿名函数的形式出现,每次都需要写一个function,甚是繁琐。当引入箭头操作符后可以方便地写回调了。请看下面的例子。 
var array = [1, 2, 3]; 
//传统写法 
array.forEach(function(v, i, a) { 
console.log(v); 
}); 
//ES6 
array.forEach(v = > console.log(v));

2、类的支持

ES6中添加了对类的支持,引入了class关键字(其实class在JavaScript中一直是保留字,目的就是考虑到可能在以后的新版本中会用到,现在终于派上用场了)。JS本身就是面向对象的,ES6中提供的类实际上只是JS原型模式的包装。现在提供原生的class支持后,对象的创建,继承更加直观了,并且父类方法的调用,实例化,静态方法和构造函数等概念都更加形象化。

3、增强的对象字面量

对象字面量被增强了,写法更加简洁与灵活,同时在定义对象的时候能够做的事情更多了。具体表现在:

  • 可以在对象字面量里面定义原型
  • 定义方法可以不用function关键字
  • 直接调用父类方法

这样一来,对象字面量与前面提到的类概念更加吻合,在编写面向对象的JavaScript时更加轻松方便了。

4、字符串模板

字符串模板相对简单易懂些。ES6中允许使用反引号 ` 来创建字符串,此种方法创建的字符串里面可以包含由美元符号加花括号包裹的变量${vraible}。如果你使用过像C#等后端强类型语言的话,对此功能应该不会陌生。

5、解构

自动解析数组或对象中的值。比如若一个函数要返回多个值,常规的做法是返回一个对象,将每个值做为这个对象的属性返回。但在ES6中,利用解构这一特性,可以直接返回一个数组,然后数组中的值会自动被解析到对应接收该值的变量中。

6、let与const 关键字

可以把let看成var,只是它定义的变量被限定在了特定范围内才能使用,而离开这个范围则无效。const则很直观,用来定义常量,即无法被更改值的变量

7、for of 值遍历

我们都知道for in 循环用于遍历数组,类数组或对象,ES6中新引入的for of循环功能相似,不同的是每次循环它提供的不是序号而是值。

8、模块

在ES6标准中,JavaScript原生支持module了。这种将JS代码分割成不同功能的小块进行模块化的概念是在一些三方规范中流行起来的,比如CommonJS和AMD模式。

将不同功能的代码分别写在不同文件中,各模块只需导出公共接口部分,然后通过模块的导入的方式可以在其他地方使用。

9、Map,Set 和 WeakMap,WeakSet

这些是新加的集合类型,提供了更加方便的获取属性值的方法,不用像以前一样用hasOwnProperty来检查某个属性是属于原型链上的呢还是当前对象的。同时,在进行属性值添加与获取时有专门的get,set 方法

10、Symbols

我们知道对象其实是键值对的集合,而键通常来说是字符串。而现在除了字符串外,我们还可以用symbol这种值来做为对象的键。Symbol是一种基本类型,像数字,字符串还有布尔一样,它不是一个对象。Symbol 通过调用symbol函数产生,它接收一个可选的名字参数,该函数返回的symbol是唯一的。之后就可以用这个返回值做为对象的键了。Symbol还可以用来创建私有属性,外部无法直接访问由symbol做为键的属性值。

11、Math,Number,String,Object 的新API

对Math,Number,String还有Object等添加了许多新的API。下面代码同样来自es6features,对这些新API进行了简单展示。

12、Promises

Promises是处理异步操作的一种模式,之前在很多三方库中有实现,比如jQuery的deferred 对象。当你发起一个异步请求,并绑定了.when(), .done()等事件处理程序时,其实就是在应用promise模式。

版权声明:本文为博主原创文章,未经博主允许不得转载。

ECMAScript6新特性简介

原文:http://blog.gejiawen.com/2015/07/28/es6-new-feature/ ES6(ECMAScript 6)终于在2015年6月正式发布了。距离上一次正式公...
  • arjick
  • arjick
  • 2016年06月19日 16:38
  • 2812

简单谈谈ES6的十大特性

简单谈谈ES6的十大特性    本文转载自AlloyTeam:点击打开链接    鹅厂美丽的前端小编,文章总结的超棒。    附一篇我最敬佩的大神阮叔的一本ES6入门书籍《ECMAScript 6入...
  • wp1603710463
  • wp1603710463
  • 2016年05月16日 22:34
  • 6194

深入ES6(一)历史与简介

第一章 历史与简介 ES6于2015年6月正式发布,其目标是使JS原因呢可用于编写大型的应用程序,成为企业级的开发语言。这篇文章主要介绍: 1. ECMAScript的版本历史 2. ...
  • Hukaihe
  • Hukaihe
  • 2017年04月10日 15:37
  • 1366

ES6新特性Promise详解

在ES6当中添加了很多新的API其中很值得一提的当然少不了Promise,因为Promise的出现,很轻松的就给开发人员解决了异步回调地狱的问题,废话不多,直接上代码: 在以前我们有个一个异步函数,...
  • Ran_Cheng_wei
  • Ran_Cheng_wei
  • 2018年01月13日 11:53
  • 32

JavaScript ES6新的类继承特性学习笔记

Javascript新标准ES6正式出来都一年多了,最近才有时间愿意集中精力研究下,发现有些新特性确实亮瞎了我的双眼,比如,最新的“类-实例”的支持,再比如模仿Python引入gennerator等等...
  • kikaylee
  • kikaylee
  • 2016年06月19日 14:18
  • 6323

ES6学习——正则表达式新特性

简单说一下正则表达式中新加入的特性: 1)flags属性: /abc/ig.flags//gi 2)/u unicode标记,Chrome 48都还不支持这个标记 /\uD83D/.test(...
  • kittyjie
  • kittyjie
  • 2016年02月05日 09:36
  • 1486

AngularJS系列之ES6特性(一)

AJAX和HTML5就不在这里缀述了。不过还是建议大家再看看AJAX中讲到的“Web重生”、“从Web编程到Web应用程序”以及HTML5的Web Worker、Canvas、File Reader等...
  • caoshiying
  • caoshiying
  • 2016年12月04日 14:34
  • 738

ES6新特性:使用export和import实现模块化

阅读目录   ES6的模块化的基本规则或特点:  下面列出几种import和export的基本语法:  ES6导入的模块都是属于引用:  循环依赖的问题:  浏览器兼容:  参考:   在...
  • qq_39894133
  • qq_39894133
  • 2017年12月20日 22:16
  • 40

需要掌握的es6特性(二)

数组的扩展Array.from()Array.from方法用于将两类对象转为真正的数组:类似数组的对象(array-like object)和可遍历(iterable)的对象(包括ES6新增的数据结构...
  • thebigbuding
  • thebigbuding
  • 2016年07月21日 11:48
  • 218

【javascript】ES6 特性 菜鸟学习笔记

本文根据此文学习,附上原文链接点击 首先上几个链接                      ES6在线编辑器            要查看ES6的支持情况请点此             1)首先说箭...
  • gjc9620
  • gjc9620
  • 2015年01月08日 16:34
  • 566
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ES6特性简述
举报原因:
原因补充:

(最多只允许输入30个字)