// 模板字符串特性
- 可以放变量
- 可以折行
例一:
let name=‘join’,age=18;
console.log(我叫${name},今年${age}岁了
);
=> 我叫join,今年18岁了
用ES5 实现 ES6的模板字符串
let name=‘join’,age=18;
let desc = “
n
a
m
e
今
年
{name}今年
name今年{age}岁了”
function replace(desc){
return desc.replace(/${([^}]+)}/g,function(matched,key){
// console.log(arguments);
return eval(key);
});
}
console.log(replace(desc));
例二:(可以用来调函数)
let name = ‘liu’,age=12;
function desc(string,…rest){
console.log(string);
console.log(rest);
}
let str = desc${name} 今年 ${age} 岁了
;
=> ["", " 今年 “, " 岁了”, raw: Array(3)] // 先把字符组成一个数组
[“liu”, 12] // 再把变量组成一个数组
例三:(自定义逻辑的字符串模板)
let name = ‘liu’,age=12;
function desc(strings,…values){
result=’’;
for(let i=0; i<values.length; i++){
result+=(strings[i]+values[i]);
}
result += strings[strings.length-1];
return result;
}
let str = desc${name} 今年 ${age} 岁了
;
console.log(str);
=> liu 今年 12 岁了
字符串新方法
1.includes() // 返回布尔值,表示是否找到了参数字符串
2.startsWith() // 返回布尔值,表示参数字符串是否在源字符串的头部
3.endsWith() // 返回布尔值,表示参数字符串是否在源头字符串的尾部