私たちの多くは、次のものを見たり使用したりしています。
var t=!0; (t will equal true)
var t=!1; (t will equal false)
真偽を評価するこの方法はどの程度安全ですか?
私はグーグルがこれをいつも使っているのを見ます。
これらは常にブール値の true / falseを返しますか?
ありがとう。
私たちの多くは、次のものを見たり使用したりしています。
var t=!0; (t will equal true)
var t=!1; (t will equal false)
真偽を評価するこの方法はどの程度安全ですか?
私はグーグルがこれをいつも使っているのを見ます。
これらは常にブール値の true / falseを返しますか?
ありがとう。
はい:
11.4.9 論理否定演算子 ( ! )
プロダクション UnaryExpression : ! UnaryExpression は次のように評価されます。
UnaryExpression を評価した結果を expr とします。
oldValue を ToBoolean(GetValue(expr)) とします。
oldValue が true の場合、false を返します。
真を返します。
はい、常に返さtrue
れfalse
ます。
より具体的に!x
は、「偽の」値 ( 、など) に対して返され、逆にtrue
「真の」値に対して返されます。undefined
""
false
より一般的なイディオムは!!x
、「偽の」値を厳密に変換し、「真実の」値を厳密に変換することです。false
つまりtrue
、ブール値への「型キャスト」のようなものです。