6

重複の可能性:
Javascript === vs == : どの「等しい」演算子を使用しても問題ないですか?
JavaScript == が === よりも意味をなすのはいつですか?

文字列を未定義の値と比較する際の以下の方法の違いは何ですか。

 var x; 
 if(x==undefined) 
 { 
  alert(x); 
 }

if(x===undefined)
{ 
  alert(x); 
}

この場合、なぜ 2 番目の方法を選択する必要があるのでしょうか。利点を教えてください。

4

4 に答える 4

18
  • ==値が同じかどうかをテストする前に、値を同じ型に変換しようとします。"5" == 5
  • ===これはしません。等しいためには、オブジェクトが同じ型である必要があります。"5" !== 5

この場合、結果は次のようになります。

  • x == undefinedがまたはの場合xはtrue になります。 undefinednull
  • x === undefinedxの場合にのみ true になりますundefined

undefined と null を同等に扱いたい場合は、最初の方法を優先する必要があります。これの一般的な用途の 1 つは、オプションの関数引数です。

function greet(name, greeting) {
    if (name == undefined) name = 'World';
    if (greeting == undefined) greeting = 'Hello';
    alert(greeting + ' ' + name);
}

greet(); // alerts "Hello World"
greet("Bob"); // alerts "Hello Bob"
greet(null, "Goodbye"); // alerts "Goodbye World"
于 2011-11-15T06:35:49.820 に答える
9

x=5 だとします。

== に等しい

x==8 は偽 x==5 は真

=== は (値と型) と正確に等しい

x===5 は true x==="5" は false

この概念を理解していただければ幸いです

于 2011-11-15T06:35:49.313 に答える
7

== は 2 つの値を比較するだけで、型が異なる場合は型変換が行われます

=== は値とその型を比較す​​るため、ここでは型変換は行われません。

于 2011-11-15T06:36:05.717 に答える
6

===同じタイプもチェックします。いくつかの例で理解できます:

(1 == '1') //Returns true

==型を気にしないので、true を返します。ただし、厳密な型チェックが必要な場合は、同じ型で同じ値の場合にのみ===true を返すため、を使用します。

(1 === '1') //Returns false
(1 === 1) //Returns true
  • 2 つの文字列は、同じ文字シーケンス、同じ長さ、および対応する
    位置に同じ文字を持っている場合、厳密に等しくなります。
  • 数値的に等しい (数値が同じ) 場合、2 つの数値は厳密に等しくなります。
    NaN は、 NaN を含め、何とも等しくありません。正のゼロと負のゼロは互いに等しくなります。
  • 2 つのブール オペランドは、両方が true または両方が false の場合、厳密に等しくなります。
  • 2 つのオブジェクトが同じオブジェクトを参照する場合、それらは厳密に同等です。
  • Null および未定義の型は == です (ただし、=== ではありません)。

参照

于 2011-11-15T06:35:26.213 に答える