ifを使う時に空文字列とか空オブジェクトってどう判定されるのかいつも忘れてしまうのでまとめてみます。
下記の関数を使ってチェックしてみました。
check = function(obj) {
if (obj) {
return 'true';
} else {
return 'false';
}
};
console.log(check(null)); //false
String
check('') // false
check('0') // true
空文字列はfalse
何か入っていればtrue
Number
check(1) // true
check(0) // false
check(-1) // true
0はfalse、それ以外はtrue
Array
check([]) // true
check([].length) // false
空のArrayでもtrueが返る。
空か否か判定する時はlength
を使う。
Object
check({name:false}) // true
check({}) // true
check(Object.keys({})) // true
check(Object.keys({}).length) // false
空のobjectでもtrueが返る。
空か否か判定する時はObject.keys(obj).length
とする。