ES6对于字符串做了很多新的扩展,笔记下常用的一些。
1. 字符串的遍历for…of…
for(let codePoint of "str"){
console.log(codePoint);
// s t r
}
2.以往在js中,indexOf判断一个字符串是否在另外一个字符串中,ES6新增加的三种方法.三种方法均提供两个参数,一个是需要查找的字符串,一个是开始查找的位置,位置可以省略
includes();返回布尔值,表示是否找到查找的字符串
startsWith();返回布尔值,表示查找字符串是否在开始的位置
endsWitd();返回布尔值,表示查找字符串是否在结束的位置
var s = 'hello'
s.includes('e'); //true
s.startsWith("h");//true
s.endsWith('o');//true
3.repeat(n)
把原字符串重复n次;
1)当n是小数时,会向下取整
2)当n是负数或者infinity时,会报错
3)当n是0时,为空,返回空字符串,当为-1到0之间的数值时,会先转换为-0.然后返回空字符串
4)当n为NaN时,返回空字符串
5)n为字符串时,则会先转换为数字
'x'.repeat(2) // 'xx'
4.padStart(),padEnd()
字符串补全长度,如果字符串不够指定长度会在头部或者尾部补全。padStart()头部补全;padEnd()尾部补全.常用于指定字符串位数和提示字符串格式
'x'.padStart(5,'ab') // 'ababax'
'x'.padEnd(5,'ab') // 'xabab'
如果原字符串的长度大于或者等于指定字符串的长度,则返回原字符串
'ababab'.padStart(2,'a') // 'ababab'
'ababab'.padEnd(2,'a') // 'ababab'
如果原字符串和指定的字符串两者之和大于指定的长度,则会截取超出的部分
'aaa'.padStart(5,'bbb') //'bbbaa'
'aaa'.padEnd(5,'bbb') //'aaabb'
如果省略第二个参数,则默认以空字符串补全
'a'.padStart(3) // ' a'
'1'.padStart(10,0) // '0000000001'
'12'.padStart(10,'YYYY-MM-DD') // 'YYYY-MM-12'
5.模板字符串,反引号
增强版的字符串,字符串中可以存在变量但必须在放在
变量,可以保留空格和缩进,可以定义多行字符串,还可以在
{ fn() }调用函数
6.标签模板
作为函数调用的另外一种形式,标签指的就是函数,模板就是参数
alert`123` ==> alert(123)