当前位置:首页 > 技术文章 > 正文内容

ES6字符串的新特性及新增方法梳理

zonemu3个月前 (07-23)技术文章36

ES6中对字符串的处理做了增强,改进了Unicode表示法,增加了很多新的API,你是不是都知道呢?

Unicode表示法

在js中,可以使用"\u0061"来表示一个字符,但是仅限于码点在\u0000~\uFFFF之间的字符,如果超出了这个范围,就必须要用两个字节来表示,如"\uD842\uDFB7"。

在ES6中,可以将码点放入大括号中,无需再用双字节来表示:"\u{20BB7}"。

在ES5中提供了String.fromCharCode从Unicode码点返回字符串,这个方法也是不能识别大于0xFFFF的字符。ES6中增加了一个fromCodePoint的方法,弥补了fromCharCode的不足。

字符串的遍历

ES6中增加了for-of循环,它是依赖Iterator来实现的,字符串也实现了这个接口,所以字符串中字符的遍历,也可以使用for-of。

使用for-of还有一个好处就是可以识别大于0xFFFF的码点,传统的for循环是做不到的:

标签模版

模板字符串不仅可以用来优雅的拼接字符串,还可以紧跟在一个函数名后,让函数处理模板字符串:

从上图可以看到,函数将模版字符串分解成了数组作为参数调用,其实就是template和template的参数。

includes、startsWith、endsWith

在ES5之前,确定一个字符串是否包含在另一个字符串中,只能用indexOf,ES6增加了三个新的实例方法:includes、startsWith、endsWith。用法如同直观看到的一样,只要在实际开发中能想到即可。

repeat

repeat方法返回一个新的字符串,表示将原字符串重复n次:

console.log('x'.repeat(3))
// xxx

padStart、padEnd

ES2017引入了字符串补全的功能。

trimStart、trimEnd

ES2019新增了消除字符串头部空格和尾部空格的功能,和trim类似。它们都是返回新的字符串,不会修改原字符串。(有同学知道为什么吗?欢迎留言分享!)

matchAll、replaceAll

matchAll返回一个正则表达式在当前字符串的所有匹配。

replaceAll替换一个正则表达式所有匹配。在之前的replace中,如果要全局匹配,需要设定正则表达式的模式为全局(/g)。


如果你对今天所讲的内容感兴趣,不要忘了给我点赞和关注哦。也欢迎你在留言区和我分享交流!

相关文章

车辆收费管理系统(车辆收费管理格式表)

今天来了解《#车辆收费管理系统》,它包括如下功能:车辆档案表格界面,车辆档案录入信息窗口,设置交费年份表格界面,车辆交费表信息窗口,本月交费表格界面,车辆预交费用表格界面,车辆预交费录入信息窗口,本次...

智能停车场管理系统五种收费类型设置

智能停车场管理系统五种收费类型设置  点击智能停车场管理系统收费标准设置图标,出现下图所示对话框,在这个界面里面可以对停车场系统需要使用的收费标准进行个性化设置:共有五种收费类型(标准收费类、通用标准...

【Vue3 基础】05.组件化(组件使用vuex)

这是 Vue3 + Vite + Pinia +TS + Element-Plus 实战系列文档。最近比较忙没什么时间写文章,争取早日把这个系列完结吧~生命周期和模板引用在本章之前,我们通过响应式 a...

10个实例小练习,快速入门熟练 Vue3 核心新特性(一)

作者:xuying 全栈修炼转发链接:https://mp.weixin.qq.com/s/_n2seDbbiO5hXQfuUGbUCQ前言Vue3.0 发 beta 版都有一段时间了,正式版也不远了...

迁移GIT仓库并带有历史提交记录(git 迁移仓库)

迁移git仓库开发在很多时候,会遇到一个问题。GIT仓库的管理,特别是仓库的迁移。我需要保留已有的历史记录,而不是重新开发,重头再来。我们可以这样做:使用--mirror模式会把本地的分支都克隆。//...

我常在使用的几个 VIM 插件(我常在使用的几个 vim 插件)

今天给你分享几个我觉得还不错的 VIM 插件,也许能给你带来一点「惊喜感」。vim主题插件 你完全可以让你的编辑器按照你喜欢的样子呈现,在 vimcolors 这个网站中,汇集了很多的主题,你可以进去...