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