本文一共介绍了两种实现方式:
1. 使用反引号实现(推荐)
ES6 模板字符串(Template String)是增强版的字符串,用反引号(`)标识,它可以当作普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量。
语法格式:
`想要输出的字符串……${变量名称}想要输出的字符串……${变量名称}`
应用实例:
<script>
window.onload = function() {
var name = "徐可可";
var age = 25;
var sex = "男";
console.log(`大家好,我叫${name},性别${sex},今年${age}岁了`);
}
</script>
2. 自定义方法实现
String.prototype 属性表示 String原型对象。所有 String 的实例都继承自 String.prototype. 任何String.prototype上的改变都会影响到所有的 String 实例。js扩展String.prototype.format字符串拼接的功能,首先是基础功能的改造:
String.prototype.format = function(){
if(arguments.length==0){
return this;
}
for(var s=this, i=0; i<arguments.length; i++){
s = s.replace(new RegExp("\\{"+i+"\\}","g"), arguments[i]);
}
return s;
};
然后就是调用了:
//方式1
var test = '我的{0}是{1}';
var result = test.format('ID','coco56');
//方式2
var test = '我的{description}是{name}';
var result = test.format({description:'ID',name:'coco56'});