欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 养生 > ES12的逻辑操作符 ,数字分隔符,字符串的replaceAll,FinalizationRegistry的用法以及使用场景

ES12的逻辑操作符 ,数字分隔符,字符串的replaceAll,FinalizationRegistry的用法以及使用场景

2025/2/23 10:15:36 来源:https://blog.csdn.net/qq_34645412/article/details/145737863  浏览:    关键词:ES12的逻辑操作符 ,数字分隔符,字符串的replaceAll,FinalizationRegistry的用法以及使用场景

以下是 ES12 (ECMAScript 2021) 中一些重要特性的总结,包括逻辑操作符、数字分隔符、字符串的 replaceAllFinalizationRegistry 的用法及使用场景,使用 Markdown 格式呈现:


ES12 (ECMAScript 2021) 特性总结

1. 逻辑操作符 (&&=, ||=, ??=)

描述

ES12 引入了三个新的逻辑赋值操作符:

  • &&=:逻辑与赋值。
  • ||=:逻辑或赋值。
  • ??=:逻辑空值合并赋值。

这些操作符用于简化条件赋值操作。

语法

x &&= y; // 等价于 x = x && y;
x ||= y; // 等价于 x = x || y;
x ??= y; // 等价于 x = x ?? y;

示例

// 逻辑与赋值 (&&=)
let a = 1;
a &&= 2; // a = 1 && 2 → a = 2// 逻辑或赋值 (||=)
let b = 0;
b ||= 2; // b = 0 || 2 → b = 2// 逻辑空值合并赋值 (??=)
let c = null;
c ??= 3; // c = null ?? 3 → c = 3

使用场景

  • 简化条件赋值操作,使代码更简洁。

2. 数字分隔符 (_)

描述

数字分隔符 _ 允许在数字字面量中使用下划线来提高可读性。

语法

const number = 1_000_000;

示例

const billion = 1_000_000_000;
const pi = 3.141_592_653_589;

使用场景

  • 提高大数字或复杂数字的可读性。

3. 字符串的 replaceAll

描述

replaceAll 方法用于替换字符串中所有匹配的子字符串。

语法

str.replaceAll(searchValue, replaceValue);

示例

const str = "Hello, world! world!";
const newStr = str.replaceAll("world", "JavaScript");console.log(newStr); // "Hello, JavaScript! JavaScript!"

使用场景

  • 需要替换字符串中所有匹配的子字符串时。

4. FinalizationRegistry

描述

FinalizationRegistry 提供了一种机制,用于在对象被垃圾回收时执行清理操作。

语法

const registry = new FinalizationRegistry(heldValue => {// 清理操作
});registry.register(target, heldValue);

示例

const registry = new FinalizationRegistry(heldValue => {console.log(`Cleaning up: ${heldValue}`);
});let obj = {};
registry.register(obj, "some value");obj = null; // 当 obj 被垃圾回收时,会触发清理操作

使用场景

  • 需要在对象被垃圾回收时执行一些清理操作,如释放资源。

总结

特性描述使用场景
逻辑操作符 (&&=, `=, ??=`)
数字分隔符 (_)提高数字字面量的可读性提高大数字或复杂数字的可读性
字符串的 replaceAll替换字符串中所有匹配的子字符串需要替换字符串中所有匹配的子字符串时
FinalizationRegistry在对象被垃圾回收时执行清理操作需要在对象被垃圾回收时执行一些清理操作,如释放资源

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词