js String.format()

/**

 * String.format

 * arguments 是一个对应于传递给函数的参数的类数组对象

  **/

String.format = function () {

  var str = arguments[0];

  for (var i = 0; i < arguments.length - 1; i++) {

    var reg = new RegExp("\\{" + i + "\\}", "gm");

    str = str.replace(reg, arguments[i + 1]);

  }

  return str;

}

String.format('{0}是个诗人,不是刺客','李白') 

结果:李白是个诗人,不是刺客

ES6 新引入 rest 参数

function(...args){

    if(args.length>0){ console.log(args[0])}

}

arguments相比 ,rest参数是一个数组,而arguments 不是,只是可以通过下标访问

ps: 个人觉得更好是使用 字符串模板

模板字面量 是允许嵌入表达式的字符串字面量。你可以使用多行字符串和字符串插值功能。它们在ES2015规范的先前版本中被称为“模板字符串”。

模板字符串使用反引号 (` `) 来代替普通字符串中的用双引号和单引号

语法 :

var name = '李白'

console.log(`${name}是个诗人,不是刺客`) 得到同样的结果

你可能感兴趣的:(js String.format())