function isEmpty(v) {
switch (typeof v) {
case 'undefined':
return true;
case 'string':
if (v.replace(/(^[ \t\n\r]*)|([ \t\n\r]*$)/g, '').length == 0) return true;
break;
case 'boolean':
if (!v) return true;
break;
case 'number':
if (isNaN(v)) return true; // 0不发生转换,数字0和字符串0都是false
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(undefined)
true
isEmpty(null)
true
isEmpty(NaN)
true
isEmpty({})
true
isEmpty(0)
false
isEmpty(1)
false
isEmpty('0')
false