ES6中新增的字符串方法
Posted weimingmei
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ES6中新增的字符串方法相关的知识,希望对你有一定的参考价值。
-
String.fromCodePoint()
- 用于从 Unicode 码点返回对应字符
-
String.fromCodePoint(0x20BB7) // "??" String.fromCodePoint(0x78, 0x1f680, 0x79) === ‘x\uD83D\uDE80y‘ // true
-
上面代码中,如果
String.fromCodePoint
方法有多个参数,则它们会被合并成一个字符串返回。
-
String.raw()
-
- 该方法返回一个斜杠都被转义(即斜杠前面再加一个斜杠)的字符串,往往用于模板字符串的处理方法。
-
String.raw`Hi\n$2+3!`; // 返回 "Hi\\n5!" String.raw`Hi\u000A!`; // 返回 "Hi\\u000A!"
-
如果原字符串的斜杠已经转义,那么
String.raw()
会进行再次转义。 -
String.raw`Hi\\n` // 返回 "Hi\\\\n" String.raw`Hi\\n` === "Hi\\\\n" // true
3.实例方法:
codePointAt()
-
codePointAt()
方法会正确返回 32 位的 UTF-16 字符的码点(十进制值),码点的十进制值,如果想要十六进制的值,可以使用toString()
方法转换一下。- Tip:使用
for...of
循环 codePointAt()
方法是测试一个字符由两个字节还是由四个字节组成的最简单方法。代码如下:-
function is32Bit(c) return c.codePointAt(0) > 0xFFFF; is32Bit("??") // true is32Bit("a") // false
4.实例方法:
normalize()
-
- 用来将字符的不同表示方法统一为同样的形式,这称为 Unicode 正规化。
5.实例方法:
includes(), startsWith(), endsWith()
-
-
- includes():返回布尔值,表示是否找到了参数字符串。
- startsWith():返回布尔值,表示参数字符串是否在原字符串的头部。
- endsWith():返回布尔值,表示参数字符串是否在原字符串的尾部。
注意:使用第二个参数
n
时,endsWith
的行为与其他两个方法有所不同。它针对前n
个字符,而其他两个方法针对从第n
个位置直到字符串结束。
-
6.实例方法:
repeat()
-
- 返回一个新字符串,表示将原字符串重复
n
次。 -
‘x‘.repeat(3) // "xxx" ‘hello‘.repeat(2) // "hellohello" ‘na‘.repeat(0) // ""
-
参数如果是小数,会被取整。
‘na‘.repeat(2.9) // "nana"
-
如果
repeat
的参数是负数或者Infinity
,会报错。‘na‘.repeat(Infinity) // RangeError ‘na‘.repeat(-1) // RangeError
- 但是,如果参数是 0 到-1 之间的小数,则等同于 0,这是因为会先进行取整运算。0 到-1 之间的小数,取整以后等于
-0
,repeat
视同为 0。 -
‘na‘.repeat(-0.9) // ""
-
参数
NaN
等同于 0。‘na‘.repeat(NaN) // ""
-
如果
repeat
的参数是字符串,则会先转换成数字。‘na‘.repeat(‘na‘) // "" ‘na‘.repeat(‘3‘) // "nanana"
- 返回一个新字符串,表示将原字符串重复
7.实例方法:
padStart(),padEnd()
-
padStart()
用于头部补全padEnd()
用于尾部补全。padStart()
和padEnd()
一共接受两个参数,第一个参数是字符串补全生效的最大长度,第二个参数是用来补全的字符串。
8.实例方法:
trimStart(),trimEnd()
-
trimStart()
消除字符串头部的空格,trimEnd()
消除尾部的空格。它们返回的都是新字符串,不会修改原始字符串。
9.实例方法:
matchAll()
-
- 方法返回一个正则表达式在当前字符串的所有匹配
以上是关于ES6中新增的字符串方法的主要内容,如果未能解决你的问题,请参考以下文章