新特性
概述 | 语法 | 备注 |
---|---|---|
常量与变量 | const / let | 块级作用域 |
模板字符串 | `` | |
解构赋值 | const {a} = data | |
对象字面量简写 | const data = {a,b,c} | |
forEach循环 | forEach((item, index)=>{}) | |
for…of循环 | for…of | 解决for…in的痛点(只循环访问对象中的值) |
展开运算符 | …item | |
箭头函数 | () => {} | call() / apply() / bind() 方法对于箭头函数毫无影响 |
默认值 | function(a=1,b=2) | |
类 | class | |
Symbol | let s = Symbol(‘a’) | 类似于字符串的数据类型,第七种数据类型 |
导出 | export { a } | |
导出 | import { a } from ‘./a.js’; | |
代理 | new Proxy(目标对象, {get(),set()}) | 对目标对象访问写入做拦截 |
async/await | async () => { awat Promise} | Promise.then()语法糖 |
promise | new Promise() | api: all() // 全部resolve后返回resolve race() // 最快的resolve后则返回resolve |
Map映射 | new Map() | api: get() / set() / has() / delete() / clear() / size |
Set集合 | new Set() | api: add() / has() / delete() / clear() / size |
weakMap弱映射 | new WeakMap() | Map对象的弱引用映射 api: get() / set() / has() / delete() |
weakSet弱集合 | new WeakSet() | Set对象的弱引用集合 api: add() / has() / delete() |
链判断运算符 | ?. | ES2020(ES11) |
Null 判断运算符 | ?? | ES2020(ES11) |
新增API
数据类型 | 语法 | 概述 |
---|---|---|
Object | Object.assign() | 可枚举对象属性复制到目标对象 |
Object.is() | 对比两个值是否相等 | |
Object.keys() | 返回对象键名 | |
Object.values() | 返回对象键值 | |
Array | Array.from() | 类数组对象转数组/字符串转数组 |
Array.of(1,2,3) | 将一组值转为数组 | |
Array.flat(Infinity) | 扁平化数组 | |
Array.at(-1) | 返回对应位置的成员(支持负) | |
Array.prototype.keys() | 返回数组键名 | |
Array.prototype.values() | 返回数组键值 | |
Array.prototype.find() | 返回满足条件的第一个元素,如果没有,则返回undefined | |
Array.prototype.findIndex() | 返回满足条件的第一个元素下标,如果没有,则返回-1 | |
Array.prototype.includes() | 检测数组是否包含指定的值,如果有返回true,反之false |