ES11
# ES11
# 私有属性
只能class类访问

# promise.allSettled
Promise.allSettled([p1,p2]):接收一个promise数组promise.all区别,按数组的排列顺序依次执行,与定时器无关promise.all有一个失败,则返回一个失败的promise,并返回一个失败的promise的值promise.allSettled永远返回一个成功的promise,有一个失败也返回成功,并得到每个promise的返回值
# string.prototype.matchAll
- 有
next:可以迭代,为for of消费 - 可以用扩展运算符展开
const reg = /<li>.*?<a>(.*?)<\/a>.*?<p>(.*?)<\/p>/gs
const result = str.matchAll(reg)
for(let v of result){
console.log(v)
}
const arr = [...result]
1
2
3
4
5
6
2
3
4
5
6
# 可选链操作符
?.形式判断有无该数据
//const dbHost = config && config.db && config.db.host
//等同于下面
const dbHost = config?.db?.host
1
2
3
2
3
# 动态import
按需加载模块
返回的是一个
promise对象
import('./hello.js').then(res => {
res.hello()
})
1
2
3
2
3
# BigInt
- 用于大数值运算
let n = 512n //BigInt类型
let max = Number.MAX_SAFE_INTEGER
console.log(BigInt(max)+BigInt(1)+BigInt(2))
1
2
3
4
2
3
4
# globalThis
- 始终指向全局对象的(
浏览器和Node) console.log(globalThis)
# ??
请看以下代码,咱们使用||运算符,只要左边是假值,就会返回右边的数据
const a = 0 || '林三心' // 林三心
const b = '' || '林三心' // 林三心
const c = false || '林三心' // 林三心
const d = undefined || '林三心' // 林三心
const e = null || '林三心' // 林三心
复制代码
1
2
3
4
5
6
2
3
4
5
6
而??和||最大的区别是,在??这,只有undefined和null才算假值
const a = 0 ?? '林三心' // 0
const b = '' ?? '林三心' // ''
const c = false ?? '林三心' // false
const d = undefined ?? '林三心' // 林三心
const e = null ?? '林三心' // 林三心
1
2
3
4
5
2
3
4
5
编辑 (opens new window)
上次更新: 2021/12/06, 21:28:32