値が空( null or undefined or ''(空文字) or or {}(空のオブジェクト) )を判定し、空の場合はtrue、値がある場合はfalseを返す
値のない変数を検出するfunction
/*
値が空( null or undefined or ''(空文字) or [](空の配列) or {}(空のオブジェクト) )を判定
返り値 true: 空 */
function isEmpty(val){
if ( !val ) {//null or undefined or ''(空文字) or 0 or false
if ( val !== 0 && val !== false ) {
return true;
}
}else if( typeof val == "object"){//array or object
return Object.keys(val).length === 0;
}
return false;//値は空ではない
}
//-----------------------------------------------------
//テスト true
var _undefined; console.log(isEmpty(_undefined));
console.log(isEmpty(null));
console.log(isEmpty(""));
console.log(isEmpty([]));
console.log(isEmpty({}));
console.log(isEmpty({}));
//空ではないが、trueを返す
console.log(isEmpty(NaN));
//テストfalse
console.log(isEmpty(0));
console.log(isEmpty(1));
console.log(isEmpty("a"));
console.log(isEmpty("0"));
console.log(isEmpty(" "));
console.log(isEmpty([1]));
console.log(isEmpty({"key": "val"}));
console.log(isEmpty(function(){}));