ES6常用语法
ES6
- ECMA Script, Javascript的语言标准
- 提升JS编写大型的复杂的应用程序的能力(模块化)
- Babel: ES6 -> ES5的转换器
let, const
- let定义变量,const定义常量
1 | let r = 2; |
- 不能重复定义
1 | var foo = 1; |
- 块级作用域
1 | // 块级作用域 |
- 不存在变量提升
1 | console.log(foo); |
解构赋值
数组类型的解构赋值
1 | let a, b, rest; |
对象解构赋值
1 | let a, b; |
例子:使用结构赋值做变量交换
1 | let a = 1; |
例子:对象结构赋值
1 | //对象解构赋值 |
箭头函数
- 参数 => 表达式/语句
1 | let value = 2; |
- 继承外层作用域(没有独立作用域)
1 | var obj = { |
- 不能用作构造函数
1 | let Ani = function(){} |
- 没有prototype属性
1 | let commonFn = function(){}; |
模板字符串
- 反引号标识 ``
- 支持多行字符串
1 | //基本用法 |
- 支持变量和表达式
1 | //嵌套变量的用法 |
Promise对象
Promise关键词:
- resolve 预期结果正确
- reject 预期结果失败
- then
1 | //Promise结构 |
在没有使用Promise之前
1 | $.ajax({ |
使用Promise的链式请求
1 | var promiseFn1 = new Promise((resolve, reject) => { |
面向对象
类
- 关键词:class
- 语法糖 -> 对应function
- 构造函数,constructor
1 | class Animal{ |
类的继承
- extends 类的继承
- super 调用父类的构造函数
1 | //类的继承 |
对象
- 对象里属性的简写
- 对象里方法的简写
- 属性名可以为表达式
- 其他扩展
1 | //对象的用法 |
ES6模块化
- 解决一个复杂问题时自顶向下逐层把系统划分成若干模块的过程
- CommonJS, AMD, CMD
index.js
1 | import { |
module.js
1 | let str = 'string'; |
index.html
1 | <script type="module" src="./index.js"></script> |