【发布时间】:2016-03-31 16:00:08
【问题描述】:
加号 (+) 运算符 和 String.concat() 方法给出相同的结果。
加号(+)运算符;
str1 + str2;
字符串 concat() 方法;
str1.concat(str2);
另外,写在w3schools;
但是对于 JavaScript,方法和属性也可用于 原始值,因为 JavaScript 将原始值视为 执行方法和属性时的对象。
那么对于我们在基元上使用还是在JS中的String对象上使用哪种方式更好地组合,它们之间的性能优势和劣势是什么?
var firstName = "John" // String
var y = new String("John"); // with String Object
以下是给出相同结果的示例代码;
function example1 () {
var str1 = "Hello ";
var str2 = "World!";
document.getElementById("demo1").innerHTML += str1 + str2;
}
function example2 () {
var str1 = "Hello ";
var str2 = "World!";
document.getElementById("demo2").innerHTML += str1.concat(str2);
}
function example3 () {
var str1 = String("Hello ");
var str2 = String("World!");
document.getElementById("demo3").innerHTML += str1 + str2;
}
function example4 () {
var str1 = String("Hello ");
var str2 = String("World!");
document.getElementById("demo4").innerHTML += str1.concat(str2);
}
example1();
example2();
example3();
example4();
<p id="demo1">Demo 1: </p>
<p id="demo2">Demo 2: </p>
<p id="demo3">Demo 3: </p>
<p id="demo4">Demo 4: </p>
【问题讨论】:
-
这个问题是关于javascript,而不是java!其次,它不仅与操作符与 concat() 有关,还与 javascript 中的原语和对象的行为有关。引用的问题不是这个的重复。应该重新打开!
-
查看 ES5 §15.5.4.6 concat 并与 §11.6.1 addition operator 进行比较;主要区别是您可以在 non-Strings 上调用
.concat并假设结果是 StringString.prototype.concat.call(1, 2); // "12"vs1 + 2; // 3 -
@PeeHaa 哎呀,对不起。
标签: javascript string performance concat string-concatenation