Metoda plus (+): i String.concat()
daje taki sam wynik.Jaka jest różnica + operator i metoda concat() w kodzie JavaScript
plus (+) operator; Sposób
str1 + str2;
ciąg concat();
str1.concat(str2);
Addionally, to jest napisane w w3schools;
Ale z JavaScript, metody i właściwości dostępne wartości pierwotne są również, ponieważ JavaScript traktuje wartości prymitywne jak obiektów podczas wykonywania metody i właściwości.
Więc w jaki sposób lepiej jest użyć do połączenia dla obu używamy na prymitywów lub na obiektach ciąg w JS, jakie są zalety i wady wydajności między nimi, jeśli istnieje jakakolwiek?
var firstName = "John" // String
var y = new String("John"); // with String Object
Oto przykładowe kody, które dają takie same wyniki;
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>
To pytanie dotyczy javascript, a nie java! a po drugie, nie chodzi tylko o operator vs. concat(), ale także o zachowanie prymitywów i obiektów w javascript. Zadane pytanie nie jest duplikatem tego. Należy ponownie otworzyć! –
Patrz ES5 [** §15.5.4.6 ** concat] (http://es5.github.io/#x15.5.4.6) i porównaj z [** §11.6.1 ** operator dodający] (http: //es5.github.io/#x11.6.1); Podstawową różnicą jest to, że możesz wywołać '.concat' na _non-Strings_ i założyć, że wynikiem jest _String_' String.prototype.concat.call (1, 2); // "12" 'kontra' 1 + 2; // 3' –
@PeeHaa Ups, przepraszam za to. –