为何使用String插值?

Cod*_*ier 1 javascript string

可能重复:
何时使用String.Format vs字符串连接更好?

嗨,我正在为开源Javascript库编写String Interpolation.我刚刚了解了字符串插值的概念,我有点困惑?为什么我们甚至在制作字符串插值时会遇到这么多麻烦?它的优点是什么?

还有Javascript中的字符串插值的任何资源,你可以指向我吗?跟我分享?

谢谢

dev*_*ife 11

字符串插值也称为字符串格式.优点是:

代码清晰度

    "<li>" + "Hello " + name + ". You are visitor number" + visitor_num + "</li>";
Run Code Online (Sandbox Code Playgroud)

比阅读和编辑更难

Java/.Net方式

String.Format("<li> Hello {0}.  You are visitor number {1}. </li>", name, visitor_num);
Run Code Online (Sandbox Code Playgroud)

蟒蛇的方式

"<li> Hello %s. You are visitor number %s</li>" % (name, visitor_num)
Run Code Online (Sandbox Code Playgroud)

JavaScript流行的方式

["<li>","Hello",name,". You are visitor number",visitor_num,"</li>"].join(' ')
Run Code Online (Sandbox Code Playgroud)

2.速度/内存使用

创建多个字符串然后连接它们会占用更多内存,并且比一次创建单个字符串要慢.

我曾经写过一个javascript字符串格式化程序 -

// simple string builder- usage:   stringFormat("Hello {0}","world"); 
// returns "Hello world"

function stringFormat() {
      var s = arguments[0];
      for (var i = 0; i < arguments.length - 1; i++) {
          var reg = new RegExp("\\{" + i + "\\}", "gm");
          s = s.replace(reg, arguments[i + 1]);
      }
      return s;
}
Run Code Online (Sandbox Code Playgroud)

  • 这是一个糟糕的字符串格式化程序实现,因为如果内插值类似于格式字符串,它可能会中断. (3认同)