《深入理解ES6》读书笔记——2.字符串和正则表达式

2021-02-06  本文已影响0人  弗利萨mom

1)更好的unicode支持

javascript字符串是基于16位字符编码(UTF-16)进行构建。

(1)codePointAt()方法:

作用:返回 一个 Unicode 编码点值的非负整数。

语法:str.codePointAt(pos)

参数:pos 这个字符串中需要转码的元素的位置。

返回值:返回值是在字符串中的给定索引的编码单元体现的数字,如果在索引处没找到元素则 返回 undefined

(2)String.fromCodePoint()方法: codePointAt的相反的方法

作用:返回使用指定的代码点序列创建的字符串。

(3)normalize()方法:

作用:按照指定的一种 Unicode 正规形式将当前字符串正规化。(如果该值不是字符串,则首先将其转换为一个字符串)。

(4)u修饰符

ES6 对正则表达式添加了u修饰符,含义为“Unicode 模式”,用来正确处理大于\uFFFF的 Unicode 字符。也就是说,会正确处理四个字节的 UTF-16 编码。

2)其他字符串变更

(1)字符串中的子串识别

includes() startsWith() endsWith()

都接受两个参数:第一个,要搜索的字符串。第二个,可选的,指定一个开始搜索的位置。

都返回布尔值

如果你需要在一个字符串中寻找另一个子字符串的实际位置,还需使用indexOf()或lastIndexOf()

对于includes() startsWith() endsWith(),传入正则表达式会报错。但对于indexOf()或lastIndexOf()则会把正则转化成一个字符串并搜索它。

(2)repeat()方法

作用:构造并返回一个新字符串,该字符串包含被连接在一起的指定数量的字符串的副本。

语法:str.repeat(count)

参数:number类型的参数。介于 0 和 [+Infinity]之间的整数。表示在新构造的字符串中重复了多少遍原字符串。

3)其他正则表达式语法变更

(1)正则表达式y修饰符

“粘连”(sticky)修饰符

作用:匹配从目标字符串的当前位置开始。

(2)正则表达式的复制

使用RegExp构造函数复制,第一个参数为正则表达式,第二个参数(可选)修改其修饰符

(3)flags属性

作用:返回正则表达式的修饰符。

只读的原型属性访问器

ES5 的 source 属性 返回正则表达式的正文

/abc/ig.source // "abc" 

ES6 的 flags 属性 返回正则表达式的修饰符

/abc/ig.flags // 'gi'

4)模板字面量

(1)基础语法

用反引号(`)标识。

如果你想使用`,用反斜杠\转义即可

(2)多行字符串

ES6只需在代码中直接换行

想创造前后空格直接留白即可,而且可以使用trim()来移除

(3)字符串占位符

${ 表达式 }

一个模板字面量里可以嵌入另外一个

(4)标签模板

标签就是一个函数,标签后的模板字符串就是它的参数。

参数:标签函数的第一个参数包含一个字符串值的数组。其余的参数与表达式相关。

(5)在模板字面量中使用原始值

String.raw()

上一篇下一篇

猜你喜欢

热点阅读