ECMAScript 2021 中的新特性:globalThis 和 数组去重
JavaScript 是一种高级的、面向对象的、动态类型语言,它经常用作 Web 前端开发的主要技术,拥有庞大的开发者社区和广泛的应用场景。在 ECMAScript 2021 中,我们看到了两个重要的特性:globalThis 和 数组去重。
globalThis
JavaScript 中的全局对象在不同的环境中会有所不同,并且很难在不同的环境中跨平台共享。可以通过在代码中检查全局对象的名称来确定代码是否正在运行在特定的环境中,但这样做过于复杂和冗余。在 ECMAScript 2021 中,引入了 globalThis,为 JavaScript 开发者提供了一种简单、可移植且标准化的方式来访问任何环境中的全局对象。
用法如下:
console.log(globalThis); // 在浏览器中是 window,在 Node.js 中是 global
在浏览器中,我们可以通过 globalThis 访问全局 window 对象,而在 Node.js 中,我们可以访问全局的 global 对象。无论我们在哪个运行时中使用 globalThis,它都会返回一个全局对象。
数组去重
在之前的 ECMAScript 版本中,JavaScript 并没有提供一种原生的方法来去除数组中的重复项,需要通过自定义函数或其他库来实现。在 ECMAScript 2021 中,Array.prototype 中新增了一个原生的方法 Array.prototype.uniq() 来去除数组中的重复项。
用法如下:
const arr = [1, 2, 3, 2, 1]; const newArr = arr.uniq(); console.log(newArr); // [1, 2, 3]
它会返回一个新数组,其中去除了了原始数组中的重复项,新数组的顺序与原始数组相同。该方法还支持一个可选的回调函数参数以完成更复杂的去重操作。
const arr = [{ name: 'Alice' }, { name: 'Bob' }, { name: 'Alice' }]; const newArr = arr.uniq(item => item.name); console.log(newArr); // [{ name: 'Alice' }, { name: 'Bob' }]
这里我们使用回调函数来根据对象的 name 属性进行去重,它会返回一个新数组,其中的对象具有独一无二的 name 属性。
总结
globalThis 和数组去重是 ECMAScript 2021 中的两个重要特性,为 JavaScript 开发者提供了更加便捷和方便的方法来操作全局对象和数组。它们的出现将进一步推动 JavaScript 语言的发展和应用,为 Web 前端开发提供更加优秀的技术支持。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65a72f0cadd4f0e0ff0210ef