2011-08-09 11 views
1

JavaScriptで空の文字列がfalseと評価されるのはなぜですか。私は、ダグラス・クロックフォードは、JavaScriptでtruthyとfalsyについてかなり語られた知っているが、これはまだ私を驚かせた:Javascriptで空の文字列がfalseに評価される理由

if("") 
    alert("you will never see this"); 

誰もが、この行動の根拠が何であるかを知っています。これはECMAScript仕様に従ってこのように実装されていますか?私は興味がある。

答えて

6

これは何も含まれていないためです。空の文字列は、多くの言語では偽の値です。これは仕様に従って標準です。

引数が空のString(長さがゼロ)の場合、結果はfalseです。 は、そうでない場合は、結果は

真である - セクションEcma-262

+0

の9.2どのように '説明する '' ===偽;'その後、偽のもの? – KooiInc

+2

'==='のポイントは型変換を行わないことであり、ほとんどのfalse値は 'false'(' false'は 'false'のfalse値)です。 – Quentin

+0

@KooiInc:厳密な比較もタイプをチェックします。文字列はブール値ではないため、等価ではありません。 –

関連する問題