美文网首页
字符串的新增方法

字符串的新增方法

作者: Xu涵 | 来源:发表于2019-07-26 10:05 被阅读0次

String.fromCodePoint()

String.fromCharCode()方法不能识别码点大于0xFFFF的字符,String.fromCodePoint()方法弥补了上述方法的不足

注意:fromCodePoint方法定义在String对象上,而codePointAt方法定义在字符串的实例对象上。

String.raw()

该方法返回一个斜杠都被转义的字符串,如下

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

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

String.raw()方法也可以作为一个正常的函数使用。第一个参数是一个具有raw属性的对象,,raw属性的值应该是一个数组

String.raw({ raw: 'test' }, 0, 1, 2);
// 't0e1s2t'

// 等同于
String.raw({ raw: ['t','e','s','t'] }, 0, 1, 2);

codePointAt()

对于四个字节的字符,JavaScript不能正确处理,但codePointAt()方法能正确处理4个字节存储的字符,返回一个字符的码点

let s = '𠮷a';

s.codePointAt(0) // 134071
s.codePointAt(1) // 57271

s.codePointAt(2) // 97

这个方法返回的码点是十进制的,可以用toString()方法转化成十六进制的

let s = '𠮷a';

s.codePointAt(0).toString(16) // "20bb7"
s.codePointAt(2).toString(16) // "61"

上面代码的字符串‘a’应该是在位置1的,但是必须向codePointAt()方法中传入2。可以用for...of循环解决问题。另外,也可以用扩展运算符(...)进行展开运算

let s = '𠮷a';
for (let ch of s) {
  console.log(ch.codePointAt(0).toString(16));
}
// 20bb7
// 61

let arr = [...'𠮷a']; // arr.length === 2
arr.forEach(
  ch => console.log(ch.codePointAt(0).toString(16))
);
// 20bb7
// 61

可以用codePointAt()方法测试一个 字符由两个字节还是四个字节组成的。

function is32Bit(c) {
  return c.codePointAt(0) > 0xFFFF;
}

is32Bit("𠮷") // true
is32Bit("a") // false

normalize()

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

normalize方法可以接受一个参数来指定normalize的方式,参数的四个可选值如下。

  • NFC,默认参数,表示“标准等价合成”,返回多个简单字符的合成字符。所谓“标准等价”指的是视觉和语义上的等价。
  • NFD,表示“标准等价分解”,即在标准等价的前提下,返回合成字符分解的多个简单字符。
  • NFKC,表示“兼容等价合成”,返回合成字符。所谓“兼容等价”指的是语义上存在等价,但视觉上不等价,比如“囍”和“喜喜”。(这只是用来举例,normalize方法不能识别中文。)
  • NFKD,表示“兼容等价分解”,即在兼容等价的前提下,返回合成字符分解的多个简单字符。

repeat()

这个方法返回一个字符串,表示将原字符串重复n次。如果参数是小数,则会被取整。参数是负数或者Infinity,会报错。

但是,如果参数是 0 到-1 之间的小数,则等同于 0,这是因为会先进行取整运算。

trimStart(),trimEnd()

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

参考资料

阮一峰《ECMAScript 6 入门

相关文章

  • learn-es6常用语法(4)

    1字符串新增方法 模板字符串 ${变量} `` `解决之前字符串连接要多次拼接的问题 新增方法 startsWi...

  • ES6学习 第四章 字符串的新增方法

    前言 本章介绍字符串对象的新增方法。不常用的方法不做重点笔记。本章原文链接:字符串的新增方法[https://es...

  • 字符串

    1. 字符串方法。 2. ES6新增加的字符串方法。

  • ES6基础入门教程(十三)新增的字符串方法

    新增:模板字符串 你要注意,输出的时候,下面那个可不是引号,是 数字1 旁边那个波折号。。 新增:字符串方法 新增...

  • es6-字符串扩展

    字符串新增特性 Unicode表示法 遍历接口 模板字符串 新增方法 babel-polifill 兼容 es7 ...

  • JS判断对象是否为空

    方法一: 将 Object 对象转换为字符串,然后判断字符串 方法二: 方法三: ES6 新增的方法 Object...

  • ECMAScript 6 新增内容

    变量的扩展letconst变量的结构 字符串的扩展及新增方法模板字符串 (`${}`)matchAll 方法返回一...

  • ECMAScript6--5.字符串扩展

    1.字符串新增特性 Unicode表示法 遍历接口 模板字符串 新增方法(10种)eg:1.Unicode表示法{...

  • ES6新增(学习中...)

    1、多行字符串的表示方法:把字符放在``的中间例如: 2、字符串的连接,新增了模板字符串例如:

  • 字符串

    1、模版字符串 2、字符串新增的一些方法 intro.startWidth('我'):字符串是否以“我”为开头in...

网友评论

      本文标题:字符串的新增方法

      本文链接:https://www.haomeiwen.com/subject/kwxrrctx.html