EcmaScript 2020 新特性总结
1. 可选操作符 “ ?. ”
这个操作符用来获取后端对象可能的不存在的属性值的时候十分有用
日常开发中,当需要访问嵌套在对象内部好几层的属性时使用
let nestedProp = obj && obj.first && obj.first.second;
?. 获取的时候 obj?.first?.second
2. 空值合并操作符 “ ?? ”
let user = {
name: 'qq',
age: 0
}
取值 user.age || 12 这个时候 0 会当作false而取值12 ; 本来是想取值0 或者不存在的时候取值12
现在 ?? 运算符可以达到我们的目的
user.age ?? 17 返回0
3. Promise.allSettled
使用方法
Promise.allSettled跟Promise.all类似, 其参数接受一个Promise的数组, 返回一个新的Promise, 唯一的不同在于, 它不会进行短路, 也就是说当Promise全部处理完成后,我们可以拿到每个Promise的状态, 而不管是否处理成功。
4. matchAll
match方法 string.match(reg) 返回的是匹配的第一个元素 matchAll返回所有匹配到的结果,但是需要正则表达式是g修饰
示例① let module = await import('/modules/my-module.js');
创建 BigInt 类型的值也非常简单,只需要在数字后面加上 n 即可。例如,123 变为 123n。也可以使用全局方法 BigInt(value) 转化,入参 value 为数字或数字字符串。
1. 声明 ,在大数后面加n就能声明一个数是大数,或者 使用BigInt() 函数包裹一个数字
在数字末尾加上n就能计算精确的大数了
let in3 = BigInt(98787880)
let in2 = BigInt(123212321)
in2*in3 // 12171883981469480n
另外: 1234567890123456789n * 123n;
// -> 151851850485185185047n
7. globalThis 统一了node环境和浏览器环境里面的this,
浏览器中全局作用域中代表对象window, node里面这个对象是global
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构