表示字符的6种方法;includes,startsWith和endsWith方法;repeat方法
‘\z’ === 'z' //true 字符表示
'\172' === 'z' //true 数字表示
'\x7A' === 'z' //true 16进制
'\u007A' === 'z' //true \uxxxx形式
'\u{7A}' === 'z' //true \u{xxxx} 形式
var s = "abc";
s.includes('b');//返回布尔值,表示是否找到了参数字符串
s.startsWith('a');//返回布尔值,表示参数字符串是否在源字符串的头部
s.endsWith('c');//返回布尔值,表示参数字符串是否在源字符串的尾部
这三个方法都支持第二个参数,表示开始搜索的位置。
var s = "hello world!";
s.startsWith('world',5);
s.endsWith('Hello',5);
s.includes('hello',5);
使用第二个参数的时候,endsWith的行为和其它两个不一样。它针对的是前n个字符,而其它两个方法是针对从第n个位置直到字符串结束。
repeat 方法返回一个新字符串,表示将原字符串重复n次
'x'.repeat(3) //"xxx"
hello.repeat(2) //"hellohello"
'na'.repeat(0) //""
参数如果是小数,会被取整
'na'.repeat(2.9) //"nana"
如果repeat的参数是负数或者Infinity,会报错
'na'.repeat(Infinity);
'na'.repeat(-1)
如果参数是0到-1之间的小数,取整之后等于-0,repeat视为0
‘na’.repeat(-0.9) //""
参数NaN等同于0
‘na’.repeat(NaN) //""
如果repeat的参数是字符串,那么就会先转换成数字
'na'.repeat('na');//""
'na'.repeat('3');//"nanana"
padStart(),padEnd() ES2017引入了字符串补全长度的功能。如果某个字符串不够指定长度,会在头部或者尾部补全。padStart()用于头部补全,padEnd()用于尾部补全
‘x’.padStart(5,'ab'); //'ababx'
'x'.padstart(4,'ab');//'abax'
'x'.padEnd(5,'ab');//'xabab'
'x'.padEnd(4,'ab');//'xaba'
模版字符串是增强版的字符串,用反括号`标识。它可以当作普通字符串使用,也可以用来定义多行字符串,或者在字符串中潜入变量。
//普通字符串
`In Javascript '\n' is a line-feed`
//多行字符串
`In Javascript this is not
legal`
//字符串中嵌入变量
var name = 'Bob',time = "today"
`hello,${name},how are you ${time}?`
如果在字符串中需要使用反引号。则在前面需要使用反斜杠转义
var greetings = `\`hello\`,world!`;
如果使用模版字符串表示多行字符串,所有的空格和缩进都会保留在输出之中。如果你不想换行,可以使用trim方法取掉它。
$('#list').html(
`
<ul>
<li>first</>
<li>second</>
</ul>
`
);
模版字符串中嵌入变量,需要将变量名写在${}中。
多语言处理
i18n`Welcome to ${website},your visitor number is ${visitornumber}!`