18

JavaScriptの比較では、どちらの演算子(== vs ===)を使用する必要がありますか?===' 'も型の同等性を保証するため、' =='は型変換を実行する可能性があることを除いて、基本的に同一であることを示します。Douglas CrockfordのJavaScript:The Good Partsでは、常に''を避けることをお勧めし==ます。しかし、2組の等式演算子を設計するという当初の考えは何だったのだろうか。

==''を使用するよりも実際に''を使用する方が適切であるという状況を見たことがあり===ますか?

4

4 に答える 4

18

数字や文字列を比較するときの状況を考えてみましょう。

if (4 === 4)
{
  // true
}

しかし

if (4 == "4")
{
  // true
}

if (4 === "4")
{
  // false
}

これは、配列だけでなくオブジェクトにも当てはまります。

したがって、上記の場合、==または===のどちらを使用するかを賢明に選択する必要があります

于 2010-01-25T14:28:20.333 に答える
5

簡単な答えは、比較中に型強制を発生させたい場合は、「==」よりも「===」の方が理にかなっているということです。

良い例は、URLクエリ文字列で渡される数値です。たとえば、ページ付けされたコンテンツがあり、pageクエリパラメータが現在のページ番号を保持している場合、実際にはではなくif (page == 1) ...、で現在のページを確認できます。page"1"1

于 2010-01-25T16:45:11.780 に答える
3

を使用しても問題はないことをお勧めしますが==、いつ、なぜ使用するのか(つまり===、原則として、==いつ使用するのか)を理解することをお勧めします。基本的に、==次のようなことをする代わりに、速記法を使用します

if (vble === 0 || vble === "" || vble === null || vble === undefined || vble === false) ...

書くだけの方がはるかに簡単です

if (vble == false) ...

(またはさらに簡単に書くことができます)

if(!vble)..。

もちろん、単に「真の」または「偽の」値を探すだけではない例があります。

本当に、あなたはいつ、そしてなぜ使うべきかを理解する必要があります==、そして、私はそれがよりよく合うところ===に使わない理由がわかりません...==

別の例は、この短縮形を使用して短縮形のメソッド呼び出しを許可することです。

function func(boolOptionNotCommonlyUsed) {
  if (boolOptionNotCommonlyUsed) { //equiv to boolOptionNotCommonlyUsed == true
    //do something we rarely do
  }
  //do whatever func usually does
}

func(); //we rarely use boolOptionNotCommonlyUsed, so allow calling without "false" as an arg
于 2010-01-25T14:31:15.530 に答える
0

==2つの辺の値が同じかどうかを比較します。

===は、2つの辺の値とデータ型が同じかどうかを比較します。

私たちが持っていると言う

$var = 0;

if($var == false){
  // true because 0 is also read as false
}

if(!$var){
  // true because 0 is also read as false
}

if($var === false){
  // false because 0 is not the same datatype as false. (int vs bool)
}

if($var !== false){
  // true becuase 0 is not the same datatype as false. (int vs bool)
}

if($var === 0){
  // true, the value and datatype are the same.
}

あなたはhttp://www.jonlee.ca/the-triple-equals-in-php/をチェックすることができます

于 2010-01-25T14:27:41.397 に答える