『JavaScript』种草 ES2020 八大新功能
本文插图
作者 | Thomas Guibert
译者 | 孙薇 , 责编 | 伍杏玲
出品 | CSDN(ID:CSDNnews)
大家都知道 , 自2015年发布的ES6开始 , 每年Ecma国际(欧洲计算机制造商协会 , European Computer Manufacturers Association)第39技术委员会(TC39)都会发布新版的ECMAScript , 而ECMAScript 2020则是ECMAScript语言规范的第11版 。 下面我们就来一探究竟 。
本文插图
‘globalThis’ JavaScript语言如今相当热门 , 也广泛应用在各种环境中——当然也会在Web浏览器中 , 但也可以在服务器端、智能手机上和机器人等设备上运行 。
每个环境访问全局对象时 , 都有自己的对象模型和语法 。 因此 , 想要编写在多个环境中能够运作的JavaScript代码可能会很困难:
// browser environmentconsole.log(window);// node.js environmentconsole.log(global);// Service worker environmentconsole.log(self);// .. 当然 , 可以编写一个检查当前环境的函数 , 定制跨平台的标准化代码 , 但无需再这样做了 。
如今 , globalThis属性是跨环境以一致方式访问全局对象的标准方式 。
本文插图
‘Promise.allSettled’ Promise.allSettled 方法会返回一个promise , 承诺在所有给定的承诺均已解决或被拒绝后负责解决 , 这个方法附有一组对象 , 分别通过status属性描述各个promise的结果 , 也就能更容易地过滤出来 。
const p1 = new Promise((res) => res("??"));const p2 = new Promise((res, rej) => rej("??"));const p3 = new Promise((res) => res("??"));Promise.allSettled([p1, p2, p3]).then(data =http://news.hoteastday.com/a/> console.log(data));// [// { status:"fulfilled", value: "??" },// { status: "rejected", value: "??" },// { status: "fulfilled", value: "??" },// ]
本文插图
空值合并运算符 当执行属性访问时尝试提供默认值 , 新的方法便是采用空值合并运算符 。 与or运算符不同 , 我们在两个操作数之间以 ??来代替||操作符 。
比较下这两个运算符:
const test = {: ,number: 0,string: '',boolean: false};const undefinedValue = http://news.hoteastday.com/a/test.dog ||"Cat"; // "Cat"const undefinedValue = http://news.hoteastday.com/a/test.dog ??"Cat"; // "Cat"const Value = http://news.hoteastday.com/a/test. ||"Default"; // "Default"const Value2 = test. ?? "Default"; // "Default"const numberValue = http://news.hoteastday.com/a/test.number || 1; // 1const numberValue2 = test.number ?? 1; // 0const stringValue = test.string ||"Hello"; // "Hello"const stringValue2 = test.string ?? "Hello"; // ""const booleanValue = http://news.hoteastday.com/a/test.boolean || true; // trueconst booleanValue2 = test.boolean ?? true; // false 如上所示 , 空值合并运算符仅在 ??左侧的操作数为或undefined时 , 返回右侧的操作数 。
本文插图
类的私有字段 默认情况下 , 在JS中 , 所有内容都可以从类外部访问 。 这项提案提出了一种在类中声明属性的新方法 , 以确保该私有字段从外部无法访问 。
推荐阅读
- 好物研究院@官方种草!本周应用推荐来了
- 「马蜂窝」马蜂窝等OTA平台实录:一边在线“劝退” 一边直播“种草”
- 「驱动之家」高颜值一眼种草!华硕 adolbook14 2020 千禧粉图赏
- [直播]专访“种草女王”黎贝卡:“直播很火,我觉得不用急”
- [青眼]估值50亿美元,“种草”社区头牌,小红书如何走出商业化迷途?
- @高颜值第一眼就种草!adolbook14 2020笔记本评测
- 「」大师设计索尼 PS5 渲染图 网友:白色款种草了
- 『』一顿操作猛如虎 华为MateXs高效办公神技瞬间种草
- [函数式]JavaScript面试问题:函数式编程
- 小红书@“种草”社区头牌小红书,如何走出商业化迷途?
