ES6常用语法(一)
ECMAScript
ECMAScript标准的历史版本分别是1、2、3、5,第4版因改动太多而遭废除。2009年发布的改进版本ES5,引入了Object.create()、Object.defineProperty()、getters和setters、严格模式,JSON对象,数组方法如map、filter、reduce,函数bind方法等。ES6是在2015年发布的,所以又称ECMAScript 2015。目前并不是所有浏览器都能兼容ES6全部特性,但可以用ES6转码工具将ES6代码转为ES5代码,例如Babel。下面总结一下常用的ES6语法。
1 .let和const
用来声明变量,和var比较起来,ES5中只有全局作用域和函数作用域,用let可以声明块级作用域,const声明常量且不可改变。
1 | for (var i = 0; i < 5; i++) { |
2 .箭头函数
1 | class People { |
注意箭头函数没有自己的this对象,会继承外面的this对象
3 .模板字符串
再也不怕字符串拼接的一堆+
了。
1 | let foo = new People('foo') |
用模板字符串还可以自由换行。
4 .class,extends,super
引入了Class
(类)这个概念,更像面向对象编程的语法。
1 | class Animal { |
如果子类中存在构造函数,则需要在使用this
之前首先调用super()
。super
关键字指代父类的实例(即父类的this
对象),可用于调用对象的父对象上的函数。
5 .默认参数
支持传入默认参数
1 | function test1(a = 'default') { |
形参解构
1 | function test2(...args) { |
类似于arguments,但arguments为类数组对象,args为数组对象