模板字符串
1、直接拼接
let name = "Jacky";
let occupation = "doctor";
//模板字符串拼接
let str = `He is ${name},he is a ${occupation}`;
2、可换行的字符串
let str = `write once ,
run anywhere`;
3、${}可以放任意的js表达式、对象的属性、函数的调用
var a = 1;
var b = 2;
var str = `the result is ${a+b}`;
//进行加法运算 结果:the result is 3
var obj = {"a":1,"b":2};
var str = `the result is ${obj.a+obj.b}`;
//对象obj的属性
//结果:the result is 3.
function fn() {
return 3;
}
var str = `the result is ${ fn() }`;
//函数fn的调用,结果:the result is 3
模板标签
可以理解为标签函数+模板字符串,这是一种新的语法规范。
接下来我们继续看函数的3个参数,从代码的打印结果我们看到它们运行后对应的结果,arr的值是一个数组:[ "他叫" , ",身高" , "米。" ],而v1的值是变量name的值:“张三”,v2的值是变量height的值:1.8。
var name = "张三";
var height = 1.8;
tagFn`他叫${name},身高${height}米。`;
//标签+模板字符串
//定义一个函数,作为标签
function tagFn(arr,v1,v2){
console.log(arr);
//结果:[ "他叫",",身高","米。" ]
console.log(v1);
//结果:张三
console.log(v2);
//结果:1.8
}
repeat函数
repeat()函数:将目标字符串重复N词,返回一个新的字符串,不影响目标字符串
var name1 = "前端君"; //目标字符串
var name2 = name1.repeat(3);
//变量name1被重复三次;
console.log(name1);
//结果:前端君
console.log(name2);
//结果:前端君前端君前端君
includes函数
includes函数:判断字符串中是否含有指定的子字符串,返回true表示含有、false表示不含有。第二个参数是选填,表示开始搜索的位置。
var name = "前端君"; //目标字符串
name.includes('君');
//true, 含有
name.includes('web');
//false, 不含有
name.includes('前',1);
//false, 从第2个字符开始搜索, 不含有
startsWidth函数
startsWidth()函数“判断子字符串是否出现在目标字符串的开头位置,第二个参数选填,表示开始搜索的位置。
var name = "前端君"; //目标字符串
name.startsWith('前');
//true,出现在开头位置
name.startsWith('端');
//false,不是在开头位置
name.startsWith('端',1);
//true,从第2个字符开始
endsWidth函数
endsWidth()函数:判断子字符串是否出现在目标字符串的尾部位置,第二个参数选填,表示针对前N个字符。
var name = "我就是前端君"; //目标字符串
name.endsWith('我');
//false,不在尾部位置
name.endsWith('君');
//true,在尾部位置
name.endsWith('君',5);
//false,只针对前5个字符
name.endsWith('君',6);
//true,针对前6个字符