概述
1.字符的Unicode表示法(uxxxx)-xxxx表示字符的Unicode码点
“u0062”
2.codePoineAt把对应字符变为对应码点
测试一个字符由一个字节还是由四个字节组成
function is32Bit(c){
return c.codePointAt(c)>0xFFFF;
}
3.String.fromCodePoint()
ES5提供String.fromCharCode方法,用于从码点返回对应字符,但是这个方法不能识别32位的UTF-16字符
ES6提供了String.fromCodePoint方法,可以识别大于0xFFFF的字符
重点:fromCodePoint方法定义在String对象上,而codePointAt方法定义在字符串的实例对象上
4.字符串的遍历器接口(for...of...可以识别大于0xFFFF的码点)
5.normalize()方法,把字符的不同表示方法统一为同样的形式,称为Unicode正规化(不能识别中文)
'u01D1'.normalize() === 'u004Fu030C'.normalize()
// true
normalize方法可以接收一个参数来指定normalize的方式,参数的四个可选值如下。
NFC,默认参数,表示“标准等价合成”,返回多个简单字符的合成字符。
NFD,表示“标准等价分解”返回合成字符分解的多个简单字符
NFKC,表示“兼容等价合成”,返回合成字符
NFKD,表示“兼容等价分解,”返回合成字符分解的多个简单字符
标准等价:视觉和语义上的等价。
兼容等价:语义上存在等价,视觉上不等价
6.ES5 indexof()可以确定一个字符串是否包含在另一个字符串中
ES6 includes()返回布尔值,表示是否找到了参数字符串
startsWith()返回布尔值,表示参数字符串是否在原字符串的头部
endsWith()返回;布尔值,表示参数字符串是否在原字符串的尾部(针对前n个字符)
这三个方法都支持第二个参数,表示开始搜索的位置
7.repeat()返回新字符串,将原字符串重复n次,参数说如果是小数,会被直接取整,若为负数/infinity,会报错。先取整,后判断是否为负
参数NaN等同于0,参数为字符串,先转换为数字
8.字符串补全长度。padStart()用于头部补全,padEnd()用于尾部补全
'x'.padStart(5,'ab');//'ababax'
'x'.padEnd(5,'ab');//'xabab';
如果原字符串的长度等于或大于指定的最小长度。则返回原字符串
如果用来补全的字符串与原字符串,两者的长度之和超过了指定的最小长度,则会截去超出位数的补全字符串
'abc'.padStart(10, '0123456789')
// '0123456abc'
如果省略第二个参数,默认使用空格补全长度
‘x’.padStart(4) //'
x'
padStart()的常见用途:
1.为数值补全指定位数。
'1'.padStart(10, '0') // "0000000001"
2.提示字符串格式
'12'.padStart(10, 'YYYY-MM-DD') // "YYYY-MM-12"
9.模板字符串
1)用trim()消除保留的空格和换行
2)变量放在${}中,要提前被声明
3)可以调用函数
10.String.raw()返回一个斜杠都被转义的字符串,对应于替换变量后的模板字符串
String.raw`Hi\n`
// 返回 "Hi\\n"
可以作为正常的函数使用,第一个参数为具有raw属性的对象,且raw属性的值应该是一个数组
String.raw({ raw: 'test' }, 0, 1, 2);
// 't0e1s2t'
// 等同于
String.raw({ raw: ['t','e','s','t'] }, 0, 1, 2);
最后
以上就是勤劳裙子为你收集整理的ES6-learning-字符串的扩展的全部内容,希望文章能够帮你解决ES6-learning-字符串的扩展所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复