このjavascriptコンソールログは私を混乱させます。 ifステートメントで-1の値を持つxがtrueに評価される前に、その行がfalseの場合はどうすればよいですか? 除くおかげ変数がマイナス数に設定されていると評価されます
x = -1
-1
x == true
false
if(x){console.log('yes')}
yes
このjavascriptコンソールログは私を混乱させます。 ifステートメントで-1の値を持つxがtrueに評価される前に、その行がfalseの場合はどうすればよいですか? 除くおかげ変数がマイナス数に設定されていると評価されます
x = -1
-1
x == true
false
if(x){console.log('yes')}
yes
if文でx
をテストすると、x
が真であるかどうかがチェックされていないため、x
が真であるかどうかを確認しています。 javascriptの真実性の規則は次のとおりです。
空の文字列は偽です。他のすべての文字列は真実です。 0
およびNaN
は偽です。他のすべての数字は真実です。 すべてのオブジェクトと配列は真実です。 null
およびundefined
は偽です。
if(-1){console.log('yes')}
版画 'はい' コンソールのため-1およびその他の数字は-1真に等しくないにも関わらず、truthey値です。
Hereは、javascriptのtrutheyとfalsey値に関連する知識を拡張するのに適しています。
負の数値(ゼロを除く)は偽の値ではありません。 – isherwood
参照:http://stackoverflow.com/a/3619813 'x == true; // false' - ブール値はこの場合数値にキャストされるので、比較は '-1 == 1 // false'になります – timolawl
** **値をブール値と比較することは**非常に*と異なります** **値をブール値に変換します。 –