私はあなたがJavascriptでこのような文字列を連結できることを知っています:
str1 + str2;
またはこのように:
[str1, str2].join('');
なぜこれを行う機能もあるのですか?
str1.concat(str2)
もっと速いですか?私にはもっとタイピングしているように思えます。私の推測では、これはstr1 + str2
最適化される前に使用されていたと思います。それは正しいでしょうか?
私はあなたがJavascriptでこのような文字列を連結できることを知っています:
str1 + str2;
またはこのように:
[str1, str2].join('');
なぜこれを行う機能もあるのですか?
str1.concat(str2)
もっと速いですか?私にはもっとタイピングしているように思えます。私の推測では、これはstr1 + str2
最適化される前に使用されていたと思います。それは正しいでしょうか?
特にIEの場合、パフォーマンスに大きな違いがあるようです。
http://www.sitepen.com/blog/2008/05/09/string-performance-an-analysis/
このString.prototype.concat
方法は非常に一般的です(ECMA Standard 5.1 Edition / 2011年6月、pp.143-144):
- この値を引数として渡してCheckObjectCoercibleを呼び出します。
- SをToStringを呼び出した結果とし、引数としてこの値を指定します。
- argsを、この関数に渡される引数リストのコピーである内部リストとします。
- RをSとします。
argsが空でない間、繰り返します
a。argsから最初の要素を削除し、nextをその要素の値とします。
b。Rを、 Rの前の値の文字とそれに続くToString(next )の文字で構成される文字列値とします。
- Rを返します。
ToString()
非常に汎用的であるため、メソッドを持つほとんどすべてのオブジェクトで使用できます。次の注も参照してください。
注: concat関数は意図的に汎用的です。この値がStringオブジェクトである必要はありません。したがって、メソッドとして使用するために他の種類のオブジェクトに転送できます。
したがって、を使用できますString.prototype.concat.call(myObject,....);
。Array.prototype.concat
非常に一般的なメソッド(p。125)もあることに注意してください。
演算子のオーバーロードよりも速くなったり遅くなったりすることはありません。