『JavaScript』种草 ES2020 八大新功能

『JavaScript』种草 ES2020 八大新功能
本文插图

作者 | Thomas Guibert
译者 | 孙薇 , 责编 | 伍杏玲
出品 | CSDN(ID:CSDNnews)
大家都知道 , 自2015年发布的ES6开始 , 每年Ecma国际(欧洲计算机制造商协会 , European Computer Manufacturers Association)第39技术委员会(TC39)都会发布新版的ECMAScript , 而ECMAScript 2020则是ECMAScript语言规范的第11版 。 下面我们就来一探究竟 。
『JavaScript』种草 ES2020 八大新功能
本文插图

‘globalThis’ JavaScript语言如今相当热门 , 也广泛应用在各种环境中——当然也会在Web浏览器中 , 但也可以在服务器端、智能手机上和机器人等设备上运行 。
每个环境访问全局对象时 , 都有自己的对象模型和语法 。 因此 , 想要编写在多个环境中能够运作的JavaScript代码可能会很困难:
// browser environmentconsole.log(window);// node.js environmentconsole.log(global);// Service worker environmentconsole.log(self);// .. 当然 , 可以编写一个检查当前环境的函数 , 定制跨平台的标准化代码 , 但无需再这样做了 。
如今 , globalThis属性是跨环境以一致方式访问全局对象的标准方式 。
『JavaScript』种草 ES2020 八大新功能
本文插图

‘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: "??" },// ]
『JavaScript』种草 ES2020 八大新功能
本文插图

空值合并运算符 当执行属性访问时尝试提供默认值 , 新的方法便是采用空值合并运算符 。 与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时 , 返回右侧的操作数 。
『JavaScript』种草 ES2020 八大新功能
本文插图

类的私有字段 默认情况下 , 在JS中 , 所有内容都可以从类外部访问 。 这项提案提出了一种在类中声明属性的新方法 , 以确保该私有字段从外部无法访问 。


推荐阅读