es6——字符串的扩展

原创 minsong 随笔 es6 174阅读 2018-05-17 17:08:55 举报

1.检测字符串中是否包含着另一个字符串

以上三种新方法都支持第二个参数,表示开始搜索的位置;
startsWith(),includes() 第二参数与参数字符串第一个字符的位置要相对应,否则false;
endsWith()从n开始不包含n的位置向前检索也就是从n-1的位置检索,如果n-1的位置不是该参数字符就返回false;

2.字符串的复制函数——repeat()函数

3.字符串补全
如果某个字符串不够指定长度, 会在头部或尾部补全。
1.头部补全用 padStart();
2.尾部补全用 padEnd();
3.两者共有两个参数,第一个参数是字符串最小长度,第二个参数用来补全的字符串;

4.字符串模板
1.使用 “反引号标识
2.变量使用${},可以引用对象
传统的JavaScript语言,输出模板通常是这样写的

上面这种写法相当繁琐不方便,ES6引入了模板字符串解决这个问题。

模板字符串(template string)是增强版的字符串,用反引号()标识**``。
它可以当作普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量。

上面代码中的模板字符串,都是用反引号表示。如果在模板字符串中需要使用反引号,则前面要用反斜杠转义。

如果使用模板字符串表示多行字符串,所有的空格和缩进都会被保留在输出之中。

上面代码中,所有模板字符串的空格和换行,都是被保留的,
比如<ul>标签前面会有一个换行。如果你不想要这个换行,可以使用trim方法消除它。

模板字符串中嵌入变量,需要将变量名写在${}之中。

大括号内部可以放入任意的JavaScript表达式,可以进行运算,以及引用对象属性。

模板字符串之中还能调用函数。

5.字符串的遍历器接口
ES6 为字符串添加了遍历器接口,使得字符串可以被for...of循环遍历。

除了遍历字符串,这个遍历器最大的优点是可以识别大于0xFFFF的码点,传统的for循环无法识别这样的码点。

上面代码中,字符串text只有一个字符,但是for循环会认为它包含两个字符(都不可打印),而for...of循环会正确识别出这一个字符。

6.at
ES5 对字符串对象提供charAt方法,返回字符串给定位置的字符。该方法不能识别码点大于0xFFFF的字符。

上面代码中的第二条语句,charAt方法期望返回的是用2个字节表示的字符,但汉字“𠮷”占用了4个字节,charAt(0)表示获取这4个字节中的前2个字节,很显然,这是无法正常显示的。
目前,有一个提案,提出字符串实例的at方法,可以识别 Unicode 编号大于0xFFFF的字符,返回正确的字符。

评论 ( 0 )
最新评论
暂无评论

赶紧努力消灭 0 回复