来自StateOfJS调查:2022年JavaScript生态圈趋势报告(前端早读课)
我这里记录些觉得有趣的。
Promise.allSettled() 完成所有输入的方法,no matter what,返回对应的状态和值/原因,这对想知道所有返回状态的业务很好用;使用async/await没法做异步并行,使用Promise.all()遇到reject会直接进入catch,allSettled完美实现多个异步并行,且能完成所有异步。
空值合并运算符(??)左侧表达式为null和undefined的话,返回右侧表达式。避免了0,''和false这些个混淆值,不过呢,好像没有判断到。
数字分隔符 为了提高数字的可读性,可以使用下划线 (_
,U+005F
) 作为分隔符,喔,巨棒,定义后再访问就没有这个分割符了,是不是还会再完善呢。
1_000_000_000_000 1_050.95 0b1010_0001_1000_0101 0o2_2_5_6 0xA0_B0_C0 1_000_000_000_000_000_000_000n
Promise.any() 输入中只要有一个resolve,则状态直接改为fullfilled;如果所有输入都reject,则状态为rejected;Promise.all(),只要一个reject,即rejected。
Array.property.at() 接收一个整数值并返回该索引对应的元素,允许正数和负数。允许负数,是他的优点。
顶层await 在模块的顶层,可以单独使用关键字 await(异步函数的外面)。也就是说一个模块如果包含用了 await 的子模块,该模块就会等待该子模块,这一过程并不会阻塞其它子模块。vue3中,在setup里使用async,目前需要使用Suspense,看来以后这里会有优化。
Temporal 用来代替Date的API。可以设置时区;别的看的有点懵。
Object.hasOwn() 用来代替Object.hasOwnProperty()。
Service Worker 看看你的电脑运行了多少worker
webRTC 在实时沟通流行当下,使用的也是很广泛吧。想有个项目试试。
webSpeech
web Components 自定义元素,全场MVP。