ES6一些常用的语法有:
-
let, const 申明变量
-
class, extends, super 类、面向对象
-
arrow functions 箭头函数
-
template string `` 模版字符串
-
destructuring 解析赋值
-
default, rest 默认值、参数
-
module 模块化
1. let, const
let、const作用和var类似,都是声明一个变量的。 var会变量提升,let不会,且let为块级作用域。 const声明的变量是常量,一旦声明后就不可改变,如果改变的话浏览器会报错。
2. class, extends, super
上面代码首先用class定义了一个“类”,可以看到里面有一个constructor方法,这就是构造方法,而this关键字则代表实例对象。简单地说,constructor内定义的方法和属性是实例对象自己的,而constructor外定义的方法和属性则是所有实例对象可以共享的。 Class之间可以通过extends关键字实现继承,这比ES5的通过修改原型链实现继承,要清晰和方便很多。上面定义了一个Cat类,该类通过extends关键字,继承了Animal类的所有属性和方法。 super关键字,它指代父类的实例(即父类的this对象)。子类必须在constructor方法中调用super方法,否则新建实例时会报错。这是因为子类没有自己的this对象,而是继承父类的this对象,然后对其进行加工。
如果不调用super方法,子类就得不到this对象。
ES6的继承机制,实质是先创造父类的实例对象this(所以必须先调用super方法),然后再用子类的构造函数修改this。
3. arrow function 箭头函数
表达式:(x,y,z)=>{函数}
1、当传参仅1个的时候()可省略,例: x =>{}
2、当函数内是个单行公式时{}可省略,例:x => x+1 ps:如果{}省略了,该function会自动return,上述内容为return x+1
4. template string `` 模版字符串
`内容`,里面的变量可以用 ${变量名} 表示
5. destructuring 解析赋值
ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构
6. default, rest 默认值、参数
default很简单,意思就是默认值。大家可以看下面的例子,调用animal()方法时忘了传参数,传统的做法就是加上这一句type = type || 'cat'来指定默认值。 如果用ES6我们而已直接这么写:
如果执行时忘了传参,那么cat为默认参,如果有参数则按type=参数来执行。
rest 省略符
7. ES6 module功能 import export
注意,一个文档里只能存在一个export default 但是可以存在多个export,例如: