検索

ホームページ  >  に質問  >  本文

JavaScript の比較ではどの等価演算子 (== と ===) を使用する必要がありますか?

<p>JSLint を使用して JavaScript を探索しているのですが、<code>==</code> (2 つの等号) を <code>===</code> (3 つ) に置き換える多くの提案が返されます。 <code>if</code> ステートメント内で <code>idSele_UNVEHtype.value.length == 0</code> を比較するなどの操作を実行する場合は、等号) を使用します。 </p> <p><code>==</code> を <code>===</code> に置き換えることにパフォーマンス上の利点はありますか? </p> <p>多数の比較演算子があるため、パフォーマンスの改善は歓迎されます。 </p> <p>型変換を行わない場合、<code>==</code> よりもパフォーマンスが向上しますか? </p>
P粉023650014P粉023650014461日前580

全員に返信(2)返信します

  • P粉336536706

    P粉3365367062023-08-24 09:01:58

    == 演算子を使用します (Equal )

    リーリー

    使用 ===operator(Identity)

    リーリー

    これは、等価演算子 == が型キャスト を行うためです。つまり、インタプリタは比較する前に暗黙的に値の変換を試行します。

    一方、 恒等演算子 === は型強制を行わないため、比較時に値は変換されません。

    返事
    0
  • P粉178894235

    P粉1788942352023-08-24 00:58:02

    厳密等価演算子 (===) は、型変換が実行されず、型が同じ、同等とみなされます。 リファレンス:

    JavaScript チュートリアル: 比較演算子

    ==

    演算子は、必要な型変換の後で が等しいかどうかを比較します。 === 演算子 は変換を実行しないため、2 つの値が同じ型でない場合、=== は単に # を返します。 ##間違い## #。どちらも同じくらい速いです。 Douglas Crockford の素晴らしい文章を引用します JavaScript: 良い部分 ,

    更新 #@Casebash

    のコメントと、オブジェクトに関する
    @Phillipe Laybaert の

    answer

    。オブジェクトの場合、===== は互いに同じように動作します (特殊な場合を除く)。 リーリー 特別なケースは、toString または valueOf メソッドにより、プリミティブを同じプリミティブとして評価されるオブジェクトと比較する場合です。たとえば、文字列プリミティブを、

    String

    コンストラクターを使用して作成された文字列オブジェクトと比較することを考えてみましょう。 リーリー Here== 演算子は両方のオブジェクトの値をチェックして true を返しますが、

    ===

    はそれらの型が異なることを確認して ## を返します# 間違い###。どちらが正しいか?それは何を比較するかによって異なります。私の提案は、この問題を完全に回避し、文字列リテラルから文字列オブジェクトを作成するために String コンストラクターを使用しないことです。 ######参照する###### https://262.ecma-international.org/5.1/#sec-11.9 .3

    返事
    0
  • キャンセル返事