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模式。

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

相关文章推荐

es6的理解

es6 理解及特性
  • jbguo
  • jbguo
  • 2016年08月08日 14:51
  • 624

ES6新特性 let、const、变量对象的解构赋值

最近在学习ES6的新特性,在看阮一峰写的ECMAScript 6 入门,目前刚开始看用自己能够理解的语言记笔记方便下次查看一 let 1、let 局部变量 不会变量提升,在运用时候要先声明在调用,v...

ES6的十个新特性

ES6中的十个特性(无特定顺序):1.默认参数 2.模版表达式 3.多行字符串 4.拆包表达式 5.改进的对象表达式 6.箭头函数 =&> 7.Promise 8.块级作用域的let和c...

ES6新特性参考

ES6新特性参考:这里收集和整理了ES6常用和重大的新特性。

ES6的新特性-让前后端差异越来越小

ES6(ECMAScript 6)是即将到来的新版本JavaScript语言的标准,代号harmony(和谐之意,显然没有跟上我国的步伐,我们已经进入中国梦版本了)。上一次标准的制订还是2009年出台...

十大ES6新特性

前端开发不得不知道的十大ES6新特性                                                          ...
  • Chef_Lu
  • Chef_Lu
  • 2017年08月02日 15:48
  • 299

ES6/7可能经常用到的新特性

引用ES6/7可能经常用到的新特性 ES6/7有很多的新的特性,下面只介绍了一部分,还有几个重要的单独讲,很多的地方都写的不是很详细,主要做一个大概的方向的了解,一篇文章也是写不完的 let 和 c...

ES6新特性概览

本文基于lukehoban/es6features ,同时参考了大量博客资料,具体见文末引用。 ES6(ECMAScript 6)是即将到来的新版本JavaScript语言的标准,代号harmo...
  • aqzwss
  • aqzwss
  • 2016年02月18日 09:44
  • 357

前端开发不得不知道的十大ES6新特性

转自:http://www.oschina.net/news/71566/es6-developers-will-have-to-know 谢谢大牛 ES6(ECMAScript2015)的出现,无...

ES6新特性之promise

一 Promise简介ES6 原生提供了 Promise 对象,Promise对象相当于状态转换机,一共有三个状态Pending(未完成)、Resolved(成功)、Rejected(失败)。且状态的...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ES6特性简述
举报原因:
原因补充:

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