JavaScriptを使用して、どのようにして0を検出しませんが、それ以外の場合はnullまたは空の文字列を検出しますか?
あなたの質問のタイトルから:
if( val === null || val == "" )
=
空の文字列とstrict-equality-compare val
を試みた場合:
if( val === null || val === "" )
Firebugを使用したテスト:
>>> 0 === null || 0 == ""
true
>>> 0 === null || 0 === ""
false
編集:説明については、代わりにCMSのコメントを参照してください。
ゼロ以外のすべての誤った値を検出する場合:
if (!foo && foo !== 0)
したがって、これはnull
、空の文字列、false
、undefined
などを検出します。
これは遅すぎるかもしれませんが、他の人の役に立つかもしれません。
私があなたを正しく理解している場合、以下のステートメントで0を除外する必要があります。
if(value) {
//Do things
}
これを行う最も簡単な方法は、次のようなステートメントを書くことだと思います。
if(value || value === 0) {
//Do things
}
これがお役に立てば幸いです。
私が正しく理解していれば、空でない文字列を検出したいですか?
function isNonEmptyString(val) {
return (typeof val == 'string' && val!='');
}
/*
isNonEmptyString(0); // returns false
isNonEmptyString(""); // returns false
isNonEmptyString(null); // returns false
isNonEmptyString("something"); // returns true
*/