2012-03-19 11 views
6

JavaScriptのifの式が実際にfalseと評価され、いつtrueになるのか不思議でした。 ifステートメントfalseは、すべてのJSインタープリタに該当しますJavaScriptが式評価の場合

私は条件がそうでなければfalse

  • null
  • undefined
  • false
    • 0

    trueだと思います。それはすべての実装(Safari/WebKitコンソールでテスト済み)に対して正しいですか、(typeof a === "undefined")のような明示的なチェックを行うのが良いでしょうか?

    答えて

    1

    あなたは変数の存在を確認したい場合は、とaはどこでもあなたのスクリプトで宣言されていない、typeof a === 'undefined'は道で、あなたがif (!window.a)を使用することができます。それ以外の場合は、ReferenceErrorがスローされます。

    あなたの推測は正しいと思われます。空の文字列とNaNは、false(または、それはいくつかのようにfalsy)と評価されます。 0がfalseと評価されるという事実は難しいかもしれませんが、while (i--)iの値が0の場合、それはfalseと評価され、whileループは停止します)のような文では便利です。