0

+Javascript でプリミティブ データ型を連結するコンマを見たことがありますが、.concat() 関数だけでなく、演算子よりもコンマを使用することに違いがあるかどうか疑問に思っていましたか?

したがって、次のステートメントの例では、abcが得られます

var value1 = a, value2 = b, value3 = c;
document.write(value1,value2,value3);
4

3 に答える 3

3

リンゴとオレンジ。あなたの例では何も連結されていません。関数に 3 つの引数を指定するだけですwrite()

document.write(exp1, exp2, exp3, ...)複数のパラメーターを受け入れ、複数のパラメーターを指定するとwrite()、それぞれを個別に呼び出したかのように、それらすべてを反復処理します。

ただし、コンマは、複数の式を処理して最後の式を返すために使用される式を評価するときに使用されます。実際にそれを確認するには、パラメーターを一連の括弧で囲み、単一のパラメーターを形成する必要があります。

document.write("a","b","c") // abc
document.write( ("a", "b", "c") )  // c 

alert("a","b","c") // a
alert( ("a","b","c") ) // c
alert( (x=2, ++x) ) // 3
于 2012-06-27T23:25:35.337 に答える
1

文字列の連結はコンピューティングで最も重い操作の 1 つであるため、document.writeさまざまなパラメーターを使用するとパフォーマンスが向上します。

このテストを参照してください (IE でハングすることがあるので、他のブラウザーを使用してください) http://jsperf.com/document-write-vs-concatenation

説明:

document.write("val1", "val2", "val3");

と同等です

document.write("val1");
document.write("val2");
document.write("val3");

したがって、文字列を連結しないため、はるかに高速です。

于 2012-06-27T23:30:03.553 に答える
0

ほとんどのブラウザー (IE <= 8、Gecko) では、+ 演算子を使用した文字列連結のパフォーマンスは最悪です。

たとえば、私の会社では、大きな HTML フラグメントを 1 つずつ構成する必要があります。この場合、次のようなものがあります。

var id = 123;
var html = [];
html.push('<div id="', id, '">hello</div>');
var result = html.join('');

連結がたくさんある場合、これは次のものよりもはるかに優れています。

var id = 123;
result = '<div id="' + id + '">hello</div>';

あなたの質問に答えるために - それは本当に状況に依存します. 多くの文字列を連結する場合は、パフォーマンスが低下するため、決して + 演算子を使用しないでください。しかし、99% の確率で、パフォーマンスの向上がほとんどなく、他の方法を試すのが面倒な場合でも問題ありません。しかし、実際にカンマ区切りのオプションがある場合 (array.push や document.write の場合など) は、間違いなくそれを利用する必要があります。

于 2012-06-28T00:04:25.537 に答える