【问题标题】:JS strings "+" vs concat method [duplicate]JS字符串“+”与concat方法[重复]
【发布时间】:2013-04-13 23:49:31
【问题描述】:

我有一些 Java 经验,我知道字符串与“+”运算符的连接会产生新对象。

我想知道如何以最好的方式在 JS 中做到这一点,它的最佳实践是什么?

【问题讨论】:

    标签: javascript


    【解决方案1】:

    关于string.concat(),MDN 有以下说法:

    强烈建议使用字符串连接运算符 (+, +=) 出于性能原因而不是这种方法

    另见@Bergi 的link

    【讨论】:

      【解决方案2】:

      在 JS 中,“+”连接通过创建一个新的 String 对象来工作。

      例如,用...

      var s = "Hello";
      

      ...我们有一个对象s

      下一步:

      s = s + " World";
      

      现在,s 是一个新对象。

      第二种方法: String.prototype.concat

      【讨论】:

        【解决方案3】:

        曾经有一段时间,将字符串添加到数组中并使用join 完成字符串是最快/最好的方法。现在的浏览器都有高度优化的字符串例程,建议++= 方法是最快/最好的

        【讨论】:

          【解决方案4】:
          • 我们不能使用concat() 函数将字符串变量连接到整数变量,因为该函数仅适用于字符串,而不适用于整数。但我们可以使用 + 运算符将字符串连接到数字(整数)。
          • 众所周知,函数比运算符慢得多。函数需要将值传递给预定义的函数,并且需要收集函数的结果。这比使用操作符执行操作要慢,因为操作符执行内联操作,但是函数用于跳转到适当的内存位置......所以,正如前面的回答中提到的,另一个区别显然是操作的速度。

          <!DOCTYPE html>
          <html>
          <body>
          
          <p>The concat() method joins two or more strings</p>
          
          
          <p id="demo"></p>
          <p id="demo1"></p>
          
          <script>
          var text1 = 4;
          var text2 = "World!";
          document.getElementById("demo").innerHTML = text1 + text2;
          //Below Line can't produce result
          document.getElementById("demo1").innerHTML = text1.concat(text2);
          </script>
          <p><strong>The Concat() method can't concatenate a string with a integer </strong></p>
          </body>
          </html>

          【讨论】:

          • 这个例子似乎对我有用?
          【解决方案5】:

          您可以尝试使用此代码(相同的情况)

          chaine1 + chaine2; 
          

          我建议你也(我更喜欢这个)string.concat method

          【讨论】:

          猜你喜欢
          • 2012-01-22
          • 1970-01-01
          • 2015-12-23
          • 2012-10-19
          • 1970-01-01
          • 2017-01-21
          • 1970-01-01
          • 1970-01-01
          • 2010-09-12
          相关资源
          最近更新 更多