ECMAScript 2021 (ES12) 中字符串和数字的新 API

ECMAScript 2021 (ES12) 是 JavaScript 的最新版本,其中包含了许多新的语言特性和 API,包括字符串和数字的新 API。这些新 API 提供了更加强大和灵活的操作字符串和数字的方法,本文将详细介绍这些新 API 的用法和指导意义,并提供示例代码帮助读者更好地理解。

字符串的新 API

String.prototype.replaceAll()

String.prototype.replaceAll(searchValue, replaceValue) 方法可以在字符串中全局替换指定的子字符串,而不仅仅是替换第一个匹配的子字符串。这个方法返回一个新的字符串,原字符串不会被修改。下面是一个示例:

----- --- - ------ -------
----- ------ - ------------------- -----
-------------------- -- ------ ------

String.prototype.trimStart() 和 String.prototype.trimEnd()

String.prototype.trimStart()String.prototype.trimEnd() 方法分别用于删除字符串开头和结尾的空白字符。这些方法返回一个新的字符串,原字符串不会被修改。下面是一个示例:

----- --- - -   ----- -----   --
----- ------- - ----------------
----- ------- - --------------
--------------------- -- ------ -----   -
--------------------- -- -   ----- ------

String.prototype.matchAll()

String.prototype.matchAll(regexp) 方法返回一个迭代器,用于遍历字符串中所有匹配指定正则表达式的子字符串。这个方法返回的迭代器包含每个匹配的详细信息,包括匹配的字符串、匹配的索引和捕获组的值。下面是一个示例:

----- --- - ------ -------
----- ------ - ---------
----- ------- - ---------------------
--- ------ ----- -- -------- -
  --------------------- -------------
-
-- --- -
-- --- -
-- --- -
-- --- -
-- --- -
-- --- -
-- --- -
-- --- -
-- --- -
-- --- --

数字的新 API

Math.clamp()

Math.clamp(x, min, max) 方法将数字 x 限制在 min 和 max 之间,如果 x 小于 min,则返回 min,如果 x 大于 max,则返回 max,否则返回 x。下面是一个示例:

----- ---- - ------------- -- ----
----- ---- - -------------- -- ----
----- ---- - -------------- -- ----
------------------ -- -
------------------ -- -
------------------ -- --

Math.scale()

Math.scale(x, inLow, inHigh, outLow, outHigh) 方法将数字 x 从输入区间 [inLow, inHigh] 映射到输出区间 [outLow, outHigh] 中,返回映射后的值。下面是一个示例:

----- ---- - ------------- -- --- -- -----
----- ---- - ------------- -- --- -- -----
----- ---- - -------------- -- --- -- -----
------------------ -- --
------------------ -- --
------------------ -- ---

总结

ECMAScript 2021 (ES12) 中的字符串和数字的新 API 提供了更加强大和灵活的操作方法,可以让开发者更加高效地处理字符串和数字。本文介绍了这些新 API 的用法和示例代码,希望能够帮助读者更好地理解和使用这些新特性。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65d6b14d1886fbafa4456a95