模板字符串

模板字符串用反应号(数字1左边的那个建)包含,用${}括起来

1
2
3
4
5
6
7
8
9
10
var name = 'zfpx',age = 8;
let desc = `${name} is ${age} old!`;
console.log(desc);

//所有模板字符串的空格和换行,都是被保留的
var str = `<ul>
<li>a</li>
<li>b</li>
</ul>`;
console.log(str);

其中的变量会用变量的值替换掉

1
2
3
4
5
function replace(desc){
return desc.replace(/\$\{([^}]+)\}/g,function(matched,key){
return eval(key);
});
}

带标签的模板字符串

可以在模板字符串的前面添加一个标签,这个标签可以去处理模板字符串 标签其实就是一个函数,函数可以接收两个参数,一个是 strings 就是模板字符串里的每个部分的字符 还有一个参数可以使用rest的形式values,这个参数里面是模板字符串里的值。

1
2
3
4
5
var name = 'wjh',age = 8;
function desc(strings,...values){
console.log(strings,values);
}
desc`${name} is ${age} old!`;

字符串新方法

  • includes():返回布尔值,表示是否找到了参数字符串。
  • startsWith():返回布尔值,表示参数字符串是否在源字符串的头部。
  • endsWith():返回布尔值,表示参数字符串是否在源字符串的尾部。
1
2
3
4
var s = 'wjh';
s.startsWith('w') // true
s.endsWith('h') // true
s.includes('j') // true

第二个参数,表示开始搜索的位置

1
2
3
4
var s = 'wjh';
console.log(s.startsWith('j',2)); // true
console.log(s.endsWith('j',2)); // true
console.log(s.includes('j',2)); // false

endsWith的行为与其他其他方法有所不同。它针对前n个字符,而其他方法是从第几位开始到字符串结束

repeat

repeat 方法返回一个新字符串,表示将原字符串重复n次。

1
2
'x'.repeat(3);
'x'.repeat(0);