includes():返回布尔值,表示是否找到参数字符串
startsWith():返回布尔值,表示参数字符串是否在原字符串的头部。
endsWith():返回布尔值,表示参数字符串是否在原字符串的尾部。
这三个方法都支持第二个参数,表示开始搜索的位置。
let str='happy birthday';
console.log(str.startsWith('happy'));//true
console.log(str.endsWith('y'));//true
console.log(str.includes('p'));//true
console.log(str.startsWith('happy', 5));//false
console.log(str.endsWith('y', 6));//true
console.log(str.includes('p', 5));//false
使用第二个参数n时,endsWith的行为与其他两个方法有所不同。它针对前n个字符,而其他两个方法针对从第那个位置到字符串结束位置之前的字符。
repeat():返回一个新字符串,表示将原字符串重复n次。参数如果是小数,会被取整,如果是负数或者Infinity,会报错。但如果是0到-1之间的小数,则等同于0,这是因为会先进行取整运算。0到-1之间的小数取整以后等于-0,repeat视为0。参数NaN等同于0。
'x'.repeat(3)//'xxx'
'happy'.repeat(2);//"happyhappy"
'happy'.repeat(0);//""
'happy'.repeat(2.9);//"happyhappy"
'happy'.repeat(Infinity);//RangeError
'happy'.repeat(-1);//RangeError
'happy'.repeat(-0.8);//""
'happy'.repeat(NaN);//""
//参数是字符串,则会先转为数字
'happy'.repeat('hh');//""
'happy'.repeat('1');//"happy"
模板字符串:
模板字符串是增强版的字符串,用反引号(`)标识。它可以当做普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量。
如果在字符串中需要使用反引号,则在其前面要用反斜杠转移。
let str=`\`hello\' world!`;
//所有模板字符串的空格和换行都是被保留的。如果不想要这个换行,可以使用trim方法消除
$('#list').html(`
<ul>
<li>1<li>
<li>2<li>
</ul>
`.trim());
//如果模板字符串的变量没有声明,将报错
`Hello ${place}`//报错
//大括号内部是字符串将会原样输出
`Hello ${'world'}`//Hello world
模板编译:
var template=`
<ul>
<%for(var i=0;i<data.supplies.length;i++)%>
<li><%=data.supplies[i]></li>
<%>}<%>
</ul>
`