ES6 第5节 字符串新增的方法

String.fromCodePoint()

主要是与String.fromCharCode()有一些不同

  • String.fromCharCode()不能识别大于0xFFFF的码点
  • String.fromCodePoint() 可以识别大于0xFFFF的码点

码点:就是某个任意字符在Unicode编码表中对应的代码值
代码单元:是在计算机中用来表示码点的,大部分码点只需要一个代码单元表示,但是有一些是需要两个代码单元表示的。

String.raw()

该方法返回一个斜杠都被转义(即斜杠前面再加一个斜杠)的字符串,往往用于模板字符串的处理方法。

String.raw`Hi\n${2+3}!`;
// 返回 "Hi\\n5!"

String.raw`Hi\u000A!`;
// 返回 "Hi\\u000A!"

String.raw`Hi\\n`
// 返回 "Hi\\\\n"

String.raw`Hi\\n` === "Hi\\\\n" // true

codePointAt()

用于处理四个字节的字符串,是charCodeAt()方法和charAt()的升级

var s = "?";

s.length // 2
s.charAt(0) // ''
s.charAt(1) // ''
s.charCodeAt(0) // 55362
s.charCodeAt(1) // 57271
s.codePointAt(0) // 134071
s.codePointAt(1) // 57271
  • charAt()方法无法读取整个字符。
  • charCodeAt()方法只能分别返回前两个字节和后两个字节的值。
  • codePointAt()方法会正确返回 32 位的 UTF-16 字符的码点。

normalize()

用来将字符的不同表示方法统一为同样的形式,这称为 Unicode 正规化。

比如Ǒ(\u01D1)。另一种是提供合成符号(combining character),即原字符与重音符号的合成,两个字符合成一个字符,比

O(\u004F)和ˇ(\u030C)合成Ǒ(\u004F\u030C)。

'\u01D1'.normalize() === '\u004F\u030C'.normalize()
//true

includes()

判断是否找到了参数字符串

let name = "james"
name.includes("james") //true

startsWith()

判断参数字符串是否在原字符串的头部

let s = 'Hello world!';
s.startsWith('Hello') // true

endsWith()

判断参数字符串是否在原字符串的尾部

let s = 'Hello world!';
s.endsWith('!') // true

repeat()

"f".repeat(2);       //  "ff"

padStart(),padEnd()

padStart()用于头部补全,padEnd()用于尾部补全

'x'.padStart(5, 'ab') // 'ababx'
'x'.padStart(4, 'ab') // 'abax'

'x'.padEnd(5, 'ab') // 'xabab'
'x'.padEnd(4, 'ab') // 'xaba'

trimStart(),trimEnd()

trimStart()消除字符串头部的空格,trimEnd()消除尾部的空格

const s = '  abc  ';

s.trim() // "abc"
s.trimStart() // "abc  "
s.trimEnd() // "  abc"
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值