-
let 与 const let 声明的变量只在 let 命令所在的代码块内有效。 const
声明一个只读的常量,一旦声明,常量的值就不能改变 -
解构赋值
let [a, b, c] = [1, 2, 3]; let {a, b, …rest} = {a: 10, b: 20, c:
30, d: 40}; -
Symble
使用 Symbol 定义常量,这样就可以保证这一组常量的值都不相等 Symbol.for() 类似单例模式 -
Map 与 Set
-
Reflect 与 Proxy
-
字符串扩展方法
includes():返回布尔值,判断是否找到参数字符串
startsWith():返回布尔值,判断参数字符串是否在原字符串的头部
endsWith():返回布尔值,判断参数字符串是否在原字符串的尾部
repeat():返回新的字符串,表示将字符串重复指定次数返回
标签模板:Hello world!
-
对象 对象字面量 ,属性的简洁表示法 , 对象的拓展运算符: … , 对象的新方法 Object.assign(target, source_1, ···) , Object.is(value1, value2)
-
数组创建
Array.of() -
将类数组对象或可迭代对象转化为数组: Array.from()
-
函数
默认参数:function fn(name,age=17){}
不定参数:function f(…values){}
箭头函数:var f = (a,b) => {let result = a+b; return result; },没有this指向 -
Class 类
类定义不会被提升,prototype 仍旧存在,共享原型对象
decorator 是一个函数,用来修改类的行为
function testable(target) {
target.isTestable = true;
}
@testable
class Example {}
Example.isTestable; // true
通过 extends 实现类的继承。super。不可继承常规对象。
- 模块
ES6 的模块化分为导出(export) @与导入(import)两个模块。 - Promise 状态
Promise 异步操作有三种状态:pending(进行中)、fulfilled(已成功)和 rejected(已失败)。除了异步操作的结果,任何其他操作都无法改变这个状态
状态的缺点
缺点:无法取消 Promise ,一旦新建它就会立即执行,无法中途取消。
如果不设置回调函数,Promise 内部抛出的错误,不会反应到外部。
当处于 pending 状态时,无法得知目前进展到哪一个阶段(刚刚开始还是即将完成)
then 方法接收成功resolve,失败reject作为回调参数
特点: JavaScript 事件队列的当前运行完成之前,回调函数永远不会被调用
自己实现个demo:(利用js微任务在弘任务之后执行)
- Generator
可以通过 yield 关键字,把函数的执行流挂起,为改变执行流程提供了可能,从而为异步编程提供解决方案 - async
async 函数返回一个 Promise 对象,可以使用 then 方法添加回调函数。
await 操作符用于等待一个 Promise 对象, 它只能在异步函数 async function 内部使用