1.变量声明const 和 let 2.字符串模板 3.箭头函数 4.类的引入 5.参数默认值,不定参数,拓展参数 6.import和 export 7.promise、async/await介绍 8.set和map 9.for-in 和 for-of
作用: 1.防止全局变量泄露 2.防止变量提升带来的覆盖问题
let:作用类似于var,用来声明变量,但是所声明的变量,只在let命令所在的代码块内有效
const:声明常量,一旦声明不可修改,不可重复声明
对于简单类型的数据(数值、字符串、布尔值),值就保存在变量指向的那个内存地址,因此等同于常量。对于复合类型的数据(主要是对象和数组),变量指向的内存地址,保存的只是一个指向实际数据的指针,const只能保证这个指针是固定的(即总是指向另一个固定的地址),不能保证指向的数据结构不可变。如果要保证指向的数据结构不可变,需要自行封装。
在一些函数中我们经常会用到字符串的拼接 在ES6中可以使用 新的语法 ${NAME} 并将它放到反引号中即可实现拼接
箭头函数与ES5中的普通函数最大的区别就是改变了函数中this的指向
普通函数this指向函数体前面的事件对象箭头函数则指向函数上下文中this所指的对象在ES6 中引入了类的概念,创造一个类 首先注意一点:class没有预解析,实例化一定要放在下面 在类中可以通过constructor构造函数,new一个实例的时候,构造函数自动执行 在class中,extends就代表继承的意思,super就是指向父类的构造函数,指代了整个prototype对象或者proto指针指向对象。
在ES6中可以直接在函数声明的过程中设置默认参数
var link = function(height = 50, color = 'red', url = 'http://azat.co') { ... }export 可以用来暴露方法和变量
import {port, getAccounts} from 'module'; console.log(port); // 3000import 需要用 import {name} from 'xxx’语法导入
import * as service from 'module'; console.log(service.port); // 3000ES6中出现了promise异步函数
var wait1000 = new Promise((resolve, reject)=> { setTimeout(resolve, 1000); }).then(()=> { console.log('Yay!'); });其中,resolve代表执行回调成功的函数 而reject代表执行回调失败的函数
