ECMAScript 2021 (ES12) 是 JavaScript 的最新版本,其中包含了许多新的语言特性和 API,包括字符串和数字的新 API。这些新 API 提供了更加强大和灵活的操作字符串和数字的方法,本文将详细介绍这些新 API 的用法和指导意义,并提供示例代码帮助读者更好地理解。
字符串的新 API
String.prototype.replaceAll()
String.prototype.replaceAll(searchValue, replaceValue)
方法可以在字符串中全局替换指定的子字符串,而不仅仅是替换第一个匹配的子字符串。这个方法返回一个新的字符串,原字符串不会被修改。下面是一个示例:
const str = "hello world"; const newStr = str.replaceAll("o", "0"); console.log(newStr); // "hell0 w0rld"
String.prototype.trimStart() 和 String.prototype.trimEnd()
String.prototype.trimStart()
和 String.prototype.trimEnd()
方法分别用于删除字符串开头和结尾的空白字符。这些方法返回一个新的字符串,原字符串不会被修改。下面是一个示例:
const str = " hello world "; const newStr1 = str.trimStart(); const newStr2 = str.trimEnd(); console.log(newStr1); // "hello world " console.log(newStr2); // " hello world"
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。下面是一个示例:
const num1 = Math.clamp(5, 0, 10); const num2 = Math.clamp(-5, 0, 10); const num3 = Math.clamp(15, 0, 10); console.log(num1); // 5 console.log(num2); // 0 console.log(num3); // 10
Math.scale()
Math.scale(x, inLow, inHigh, outLow, outHigh)
方法将数字 x 从输入区间 [inLow, inHigh] 映射到输出区间 [outLow, outHigh] 中,返回映射后的值。下面是一个示例:
const num1 = Math.scale(5, 0, 10, 0, 100); const num2 = Math.scale(8, 0, 10, 0, 100); const num3 = Math.scale(12, 0, 10, 0, 100); console.log(num1); // 50 console.log(num2); // 80 console.log(num3); // 120
总结
ECMAScript 2021 (ES12) 中的字符串和数字的新 API 提供了更加强大和灵活的操作方法,可以让开发者更加高效地处理字符串和数字。本文介绍了这些新 API 的用法和示例代码,希望能够帮助读者更好地理解和使用这些新特性。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65d6b14d1886fbafa4456a95