JavaScript の比較ではどの等価演算子 (== と ===) を使用する必要がありますか?
P粉023650014
P粉023650014 2023-08-23 12:29:52
0
2
566
<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粉023650014
P粉023650014

全員に返信(2)
P粉336536706

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

リーリー

使用 ===operator(Identity)

リーリー

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

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

いいねを押す +0
P粉178894235

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

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
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!