JavaScript本身沒有判斷一個變數是不是空值的函數,因為變數有可能是string,object,number,boolean等型別,型別不同,判斷方法也不同。所以在文章中寫了一個函數,用以判斷JS變數是否空值,如果是undefined, null, '', NaN,false,0,[],{} ,空白字串,都回傳true,否則回傳false
function isEmpty(v) {
switch (typeof v) {
case 'undefined':
return true;
case 'string':
if (v.replace(/(^[ tnr]*)|([ tnr]*$)/g, '').length == 0) return true;
break;
case 'boolean':
if (!v) return true;
break;
case 'number':
if (0 === v || isNaN(v)) return true;
break;
case 'object':
if (null === v || v.length === 0) return true;
for (var i in v) {
return false;
}
return true;
}
return false;
}
檢定:
isEmpty() //true
isEmpty([]) //true
isEmpty({}) //true
isEmpty(0) //true
isEmpty(Number("abc")) //true
isEmpty("") //true
isEmpty(" ") //true
isEmpty(false) //true
isEmpty(null) //true
isEmpty(undefined) //true