0

ブール値を単独でテストしている場合、== true を入力する必要がないことはわかっています。

 if (bool) {
   foo();
 }

文字列の値とブール値の両方が正しいかどうかをテストする if 条件があります。

 if ( string === "hello" && bool == true ) {
   foo();
 }

と:

 if ( string === "hello" && bool ) { 
 foo();
 }

?

また、bool 値で 3 つの等号を使用することはありますか? これまでのところ、bool テストで見たのは double equals のみです。

ありがとう。

4

3 に答える 3

3

3 つの等号を使用してください。優先されます。

if(bool == true)if(bool === true) and if(bool)すべて異なる表現です。1 つ目は、値 bool が JavaScript のプリミティブ型 true、または true の値を持つ Boolean (つまり new Boolean()) オブジェクトのオブジェクト表現である必要があることを示しています。2 つ目は、値 "bool"がプリミティブ型 boolでなければならないことを示しています (新しい Boolean() オブジェクトは、値が true であっても失敗します)。3 番目の式は、bool が

  • 間違い
  • ヌル
  • 未定義
  • 空の文字列 ''
  • 数 0
  • 数 NaN

つまり、たとえば、空のオブジェクト ({}) を渡すと、2 番目の式は true に評価されます。

いくつかの例:

var bool = true;
var boolObj = new Boolean(true);
var boolEmptyObj = {};

if (bool === true) { alert("This will alert"); }
if (boolObj === true) { alert("Nope, this wont alert"); }
if (boolEmptyObj) { alert("This will alert"); }
于 2013-02-27T19:27:31.777 に答える
1

はい。bool が真にブール値である場合、式と同じように true または false に評価されます。次を使用して、 bool がブール値であることを確認することもできます。

!!bool
于 2013-02-27T18:51:51.640 に答える
0

boolはい。ただし、値のみを使用する場合は、 、、およびfalseの値です。注意が必要です。nullundefined0"" (empty string)

于 2013-02-27T18:51:52.387 に答える