之前看过一遍es6,今天面试时被问到了一个很简单的es6特性,居然没回答上来,特来重温一下es6,作个总结性笔记。es6
1、什么是es6面试
es6是新版本JavaScript语言的标准,在2015年6月发布,如今浏览器已支持绝大部分特性,某些不支持的也可使用Babel转码器转换成JavaScript别的版本。es6提供了不少的新特性和语法糖,使JavaScript更加完善和丰富。编程
2、十大新特性简介数组
一、const和let关键字promise
let:新增的用来声明变量的命令,相似于var,可是只在let所在的做用域有效,而且不存在变量提高,外部声明的同名变量不会影响内部使用let声明的变量。浏览器
const:相似于let,可是const声明的是一个只读常量,声明后必须马上初始化。angular2
二、解构赋值异步
定义:es6容许按照必定模式,从数组和变量中提取值,并对变量进行赋值。能够对数组、对象、字符串、函数参数进行解构赋值,若是等号右边是数值或布尔值时会先专成对象。模块化
做用:交换变量的值、从函数返回多个值、函数的定义、提取JSON数据、函数参数的默认值、遍历Map、输入模块的指定方法。异步编程
三、默认参数
能够在函数声明时对参数设置默认值。以下:
四、模板表达式
es6中能够在使用反引号定义标识的字符串中插入变量,插入的变量放在${NAME}中,以下所示:
五、多行字符串
在es6用反引号的字符串中,能够表示多行字符串。以下所示:
六、加强的对象表达式
es6中加强了对象表达式,使之书写简便而且更像一个类。
七、箭头函数
新增了箭头函数,是一个很是让开发者喜欢的特性,使书写函数时更加简便。可是并非所有的函数均可以用箭头函数。
八、promise
新增了promise对象,是一种新的异步编程的解决方案,可使用then方法指定resolved和rejected状态,使用catch方法能够处理出现的错误。angular2用到的就是promise。
九、类
class基本上只是一个es6的语法糖,绝大部分均可以使用es5作到,他的做用只不过是让JavaScript更加规范,更加像面向对象编程的语言。
十、模块
之前使用AMD和commonJS等方式实现模块化,如今es6规范了模块化。模块自动采用严格模式,
这次面试问道的是...扩展运算符的做用,...运算符的做用是将一个数组转为用逗号分隔的参数序列,相似数组的对象、Map也能够用。
此文章只是针对一些es6经常使用的一些特性的简介,之后会继续详细说明。
参考文章:https://www.jianshu.com/p/53fe8b56cfb0
http://es6.ruanyifeng.com/