ECMAScript 6.0(以下简称ES6)是JavaScript语言的下一代标准,已经在2015年6月正式发布。 以下将着重介绍几个常用的新特性,希望大家多多翻阅阮老师的 es6入门,多看、多练、多用。
箭头函数
使用箭头函数,简化了函数的书写,你可以用更优雅的方式书写代码。
比如这样:
|
|
或者这样(无参数):
|
|
同时,可以使用箭头函数简化回调函数:
|
|
注意
- 函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象,可以省去我们的.bind(this) 操作。
- 不可以当作构造函数,也就是说,不可以使用new命令,否则会抛出一个错误。请使用class代替。
2. let\const关键字
let
1.let 和 var 的使用方法类似,只在块级作用域有效(不是函数级作用域
|
|
const
const声明一个只读的常量。一旦声明,常量的值就不能改变
注意
- let、const不存在变量声明提升
- let、const不允许重复声明
- 两种声明变量不在window下
|
|
class 类的支持
es5通过构造函数来定义并生成对象,和传统的OO语言差距很大。因此ES6 提供了新的模板来创建类。
使用姿势
|
|
getter/setter
与es5一样,可以使用get\set关键字,来拦截存取行为
|
|
注意
- Class不存在变量声明提升
字符串模板
可以使用字符串模板来省去复杂的字符串拼接;
|
|
解构赋值
ES6允许我们以一种神奇的方式直接从数组和对象中提取值并赋值到变量,也就是解构
使用姿势
|
|
默认值
解构允许我们使用默认值来进行解构
|
|
用法
交换变量
1var [ y, x ] = [ x, y ];
函数参数定义
12345function f({x, y, z}) {...}f( { y: 1, x: 2} );
提取json数据
12345678910var jsonData = {id: 42,status: "OK",data: [867, 5309]};let { id, status, data: number } = jsonData;console.log(id, status, number);// 42, "OK", [867, 5309]参数默认值
123456function test( {a = 1,b = 2}, c }{...}