模板字符串
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表達式聊替、對象的屬性楼肪、函數(shù)的調(diào)用
var a = 1;
var b = 2;
var str = `the result is ${a+b}`;
//進行加法運算 結(jié)果:the result is 3
var obj = {"a":1,"b":2};
var str = `the result is ${obj.a+obj.b}`;
//對象obj的屬性
//結(jié)果:the result is 3.
function fn() {
return 3;
}
var str = `the result is ${ fn() }`;
//函數(shù)fn的調(diào)用,結(jié)果:the result is 3
模板標(biāo)簽
可以理解為標(biāo)簽函數(shù)+模板字符串惹悄,這是一種新的語法規(guī)范春叫。
接下來我們繼續(xù)看函數(shù)的3個參數(shù),從代碼的打印結(jié)果我們看到它們運行后對應(yīng)的結(jié)果泣港,arr的值是一個數(shù)組:[ "他叫" , "暂殖,身高" , "米。" ]当纱,而v1的值是變量name的值:“張三”呛每,v2的值是變量height的值:1.8。
var name = "張三";
var height = 1.8;
tagFn`他叫${name},身高${height}米坡氯。`;
//標(biāo)簽+模板字符串
//定義一個函數(shù)晨横,作為標(biāo)簽
function tagFn(arr,v1,v2){
console.log(arr);
//結(jié)果:[ "他叫",",身高","米箫柳。" ]
console.log(v1);
//結(jié)果:張三
console.log(v2);
//結(jié)果:1.8
}
repeat函數(shù)
repeat()函數(shù):將目標(biāo)字符串重復(fù)N詞手形,返回一個新的字符串,不影響目標(biāo)字符串
var name1 = "前端君"; //目標(biāo)字符串
var name2 = name1.repeat(3);
//變量name1被重復(fù)三次悯恍;
console.log(name1);
//結(jié)果:前端君
console.log(name2);
//結(jié)果:前端君前端君前端君
includes函數(shù)
includes函數(shù):判斷字符串中是否含有指定的子字符串库糠,返回true表示含有、false表示不含有涮毫。第二個參數(shù)是選填瞬欧,表示開始搜索的位置贷屎。
var name = "前端君"; //目標(biāo)字符串
name.includes('君');
//true, 含有
name.includes('web');
//false, 不含有
name.includes('前',1);
//false, 從第2個字符開始搜索, 不含有
startsWidth函數(shù)
startsWidth()函數(shù)“判斷子字符串是否出現(xiàn)在目標(biāo)字符串的開頭位置,第二個參數(shù)選填艘虎,表示開始搜索的位置豫尽。
var name = "前端君"; //目標(biāo)字符串
name.startsWith('前');
//true,出現(xiàn)在開頭位置
name.startsWith('端');
//false顷帖,不是在開頭位置
name.startsWith('端',1);
//true,從第2個字符開始
endsWidth函數(shù)
endsWidth()函數(shù):判斷子字符串是否出現(xiàn)在目標(biāo)字符串的尾部位置渤滞,第二個參數(shù)選填贬墩,表示針對前N個字符。
var name = "我就是前端君"; //目標(biāo)字符串
name.endsWith('我');
//false妄呕,不在尾部位置
name.endsWith('君');
//true陶舞,在尾部位置
name.endsWith('君',5);
//false,只針對前5個字符
name.endsWith('君',6);
//true绪励,針對前6個字符