JS ES6+ 语法新特性
ECMAScript 6 入门
只总结一些常用的 es6+ 用法
ES6 (2015)
1.类 (class)
1 | class People { |
2.模块化 (es module)
可以把一个 js 文件当作一个模块
1 | // 模块 A 中导出一个方法 |
3.箭头函数 (arrow)
1 | const sum = (a, b) => a + b |
4.函数默认值
1 | const sum = (a = 1, b = 2) => a + b |
5.模版字符串
1 | const name = 'aa' |
6.解构赋值
模式匹配,只要等号两边的模式相同。左边的变量就会被赋予对应的值。
1 | const [, , third] = [1, 2, 3] |
7.对象属性简写
1 | const name = 'aa' |
8.Promise
1 | Promise.resolve().then(() => { console.log(2) }); |
9.let 和 const
1 | let aa = '1' |
es7 (2016)
1.includes
Array.prototype.includes()
1 | [1].includes(1) |
2.指数操作符
1 | 2**10 // 1024 |
es8 (2017)
1.async/await
异步执行
1 | async getData() { |
2.Object.values()
对象中的 values 值
1 | Object.values({ a: 1, b: 2, c: 3 }) |
3.函数参数列表结尾允许逗号
4.Object.getOwnPropertyDescriptors
获取一个对象的所有自身属性的描述符,如果没有属性,则返回 null
5.SharedArrayBuffer
用来表示一个通用的,固定长度的原始二进制数据缓冲区
6.Atomics对象
提供了一组静态方法用来对 SharedArrayBuffer 对象进行原子操作
es9 (2018)
1.异步迭代
await
2.Promise.finally()
es10 (2019)
1.Array.flat()和Array.flatMap()
2.String.trimStart()和String.trimEnd()
es11 (2020)
1.Nullish coalescing Operator(空值处理)
表达式在??的左侧 运算符求值为undefined或null,返回其右侧
1 | let user = { |
2.Optional chaining(可选链)
?.用户检测不确定的中间节点
1 | let user = {} |
3.Promise.allSettled
返回一个在所有给定的promise已被决议或被拒绝后决议的promise,并带有一个对象数组,每个对象表示对应的promise结果
4.import()
按需导入
5.新基本数据类型BigInt
任意精度的整数
6.globalThis
1 | 浏览器:window |