作業中、2つ以上の文字列を1つの文字列に連結するという問題にしばしば遭遇します。一般に、JSでこのタイプの問題に対処するには3つの方法があります。以下はそれらのリストを1つずつ紹介し、パフォーマンスを特定の比較します。
最初の方法では、コネクタ「+」を使用して、接続する文字列を接続します。
str = "a"; str+= "b";
この方法が最も便利で高速であることは間違いありません。 100個未満の文字列のみを接続する場合は、この方法を使用することをお勧めします。
2番目の方法は、中間として配列を使用して、文字列を結合に接続します。
var arr = new array(); arr.push(a); arr.push(b); var str = arr.join( "");
W3SchoolのWebサイトでは、この方法が最初のものよりも少ないリソースを消費し、より速いと紹介しています。後でこれが実験を通じて当てはまるかどうかを確認します。
3番目の方法では、オブジェクトプロパティを使用して文字列を接続します
function StringConnect(){this._str_ = new Array();} stringConnect.prototype.append = function(a){this._str_.push(a);} stringconnect.prototype.tostring = function(){return this._str_.join();} mystr.append( "a"); var str = mystr.tostring();次のコードを使用して、3つの方法のパフォーマンスを比較し、Cの値を変更して接続文字列の数を調整します。
var str = ""; var d1、d2; var c = 5000; //接続の数 strings//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- mystr.append( "a"); } str = mystr.toString(); d2 = new Date(); console.log(d2.gettime() - d1.gettime()); ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- date(); console.log(d2.gettime() - d1.gettime()); // ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Cをそれぞれ5000、50000、500000、および50000000に調整しました。各値はそれぞれ10回測定され、最終結果は次のとおりでした。
C = 5000
ミリ秒単位での平均時間
3番目のタイプ3 2 2 3 1 2 2 1 1 1 1 1.8
2番目のタイプ1 3 0 3 1 3 4 1 4 2 2.2
最初のタイプ0 0 0 0 0 1 1 1 1 1 0.5
C = 50000
3番目のタイプ22 12 9 14 12 13 13 13 10 17 13.5
2番目のタイプ8 13 12 8 11 11 8 9 8 9 9.7
最初のタイプ7 12 5 11 10 10 10 13 16 12 10.6
C = 500000
3番目のタイプ104 70 74 69 76 77 69 102 73 73 78.7
2番目のタイプ78 100 99 99 100 98 96 71 94 97 93.2
最初のタイプ90 87 83 85 85 83 84 83 88 86 85.4
C = 5000000
3番目のタイプ651 871 465 444 1012 436 787 449 432 444 599.1
2番目のタイプ568 842 593 747 417 747 719 549 573 563 631.8
最初のタイプ516 279 616 161 466 416 201 495 510 515 417.5
5000000をカウントすると、ランダムパラメーターがアドレスバーに追加されます。これにより、キャッシュの影響が回避されます。結果から判断すると、最初の方法は他の2つの方法よりも多く消費されず、さらに有利であり、これは明らかにマニュアルの指示と矛盾しています。
テストシステム:7フラッグシップを獲得します
ブラウザ:Chrome 52.0.2739.0 m
上記の記事では、3つの文字列接続方法について簡単に説明し、JSのパフォーマンス比較はすべて私があなたと共有するコンテンツです。参照を提供できることを願っています。wulin.comをもっとサポートできることを願っています。