ES6 - ECMAScript 6.0
箭头函数
- ES6箭头函数
- 注意 1:函数体内的this对象,就是定义时所在的对象(一般是外层函数中的this)
- 注意 2:无法使用arguments,没有arguments对象
- 注意 3:不能当作构造函数,不能使用new创建对象
- 注意:不要在Vue的选项属性或回调上使用箭头函数
- 比如:
created: () => console.log(this.a)
或vm.$watch('a', newValue => this.myMethod())
- 比如:
1 | /* 语法: */ |
rest参数
- ES6 引入 rest 参数(形式为…变量名),用于获取函数的多余参数,这样就不需要使用arguments对象了
- 说明:rest 参数的类型是:数组
- 注意:rest 参数之后不能再有其他参数(即只能是最后一个参数),否则会报错
1 | function add(...values) { |
解构赋值
- ES6解构
- ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring)。
1 | // 对象解构 |
对象简化语法
- 对象中的属性和方法,都可以使用简化语法
1 | /* 属性的简化语法: */ |
属性名表达式
- ES6 允许字面量定义对象时,用表达式作为对象的属性名,即把表达式放在方括号内。
1 | var propKey = 'foo' |
变量声明- let、const
let
ES6 新增了let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。
let
特点:- 1 块级作用域(ES6)
- 2 先声明再使用
- 3 不允许重复声明
1 | /* 基本使用 */ |
const
- const声明一个只读的常量。一旦声明,常量的值就不能改变。
- const的作用域与let命令相同:只在声明所在的块级作用域内有效
1 | const PI = 3.1415 |
ES6语法 - class关键字
- ES6以前,JS是没有class概念的,而是通过构造函数+原型的方式来实现的
- 注意:ES6中的class仅仅是一个语法糖,并不是真正的类,与Java等服务端语言中的类是有区别的
- ES6 - 文档
1 | class Person { |
- 类继承:
- 1 如果子类提供了 constructor,那么,必须要调用
super()
- 2 子类添加属性,必须在 super() 调用后面
- 1 如果子类提供了 constructor,那么,必须要调用
1 | // 类继承: |
静态属性和实例属性
- 静态属性:直接通过类名访问
- 实例属性:通过实例对象访问
ES6模块化 - import和export
import
:导入模块export
:导出模块注意1:
export default
每个模块只能使用一次- 注意2:
export
每个模块可以使用多次 - 注意3:一个模块可以导出多个内容,
export default
和export
可以一起使用
1 | // main.js |
1 | // main.js |
1 | // main.js |