2017-01-27 9 views
0

はい、「includes()」は必ずしも比較に使用されるとは限りません。私はまたこれが非常に疑問かもしれないことを認識しています。しかし、私の特定のケースでは、配列内の特定の文字列にテキストの識別文字列が含まれているかどうかを区別するために使用しています。JavaScriptで比較すると "includes()"や "=="の方が効率的ですか?

my2ndFunction("identifying string",1000,true); 

へ:この

my2ndFunction("useless parameter","identifying string",1000,true); 

目的要するに、私はそのような変更など、私は1つの空白のパラメータを固執するためのオプションを持っている大きさ3の配列を返す二つの機能を持っていますこのようなチェックによって二つの機能(上記1と3つの引数の他のいずれか)を区別するために、次のようになります。

if(arguments.length == 4){} 
else{} 

それとも、それは単に3で議論を残すために速くなり、これを行うだろう。

if(arguments[0].includes("identifying")){} 
else{} 

また、質問が明確でない場合は、私が質問した特定の方法を自由に編集してください。

+1

これらの種類のものは、少なくともこの例では効率化に焦点を当てるべきではありません。どちらのオプションも十分速く動作します。この場合、startsWithはインクルードよりも優れているはずです。 – juvian

答えて

0

私は両方とも大丈夫だと思うし、あなたの関数の使用例にもよります。

最初のもの(==)を使用している場合は、関数のパラメータの数だけをテストし、4番目のパラメータが「識別する」オブジェクト以外のものであっても機能します。 「識別」以外のタイプを渡している場合、エラーは発生しません。

一方、includes()を使用すると、最初のパラメータが「識別する」オブジェクトであるかどうかがテストされ、3つのパラメータだけを渡すと動作します。

実際の使用状況によって異なりますので、お使いの通話に注意する必要があります。そうでなければ、あなたのコードがなぜ機能していないのかを特定するのに時間がかかります。

関連する問題