是否有一个通用的 JavaScript 函数来检查变量是否有值并确保它没有undefined
或为null
?我有这个代码,但我不确定它是否涵盖所有情况:
function isEmpty(val){
return (val === undefined || val == null || val.length <= 0) ? true : false;
}
您可以检查变量是否具有truthy
值。这意味着
if( value ) {
}
如果value
不是,则评估为true
:
以上列表表示 ECMA- / Javascript 中所有可能的falsy
值。在ToBoolean
部分的规范中找到它。
此外,如果您不知道变量是否存在(即,如果已声明 ),则应使用typeof
运算符进行检查。例如
if( typeof foo !== 'undefined' ) {
// foo could get resolved and it's defined
}
如果你可以确定至少声明了一个变量 ,你应该直接检查它是否具有truthy
所示的truthy
值。
进一步阅读: http : //typeofnan.blogspot.com/2011/01/typeof-is-fast.html
检查值是未定义还是 null 的详细方法是:
return value === undefined || value === null;
您也可以使用==
运算符,但这需要人们知道所有规则 :
return value == null; // also returns true if value is undefined
function isEmpty(value){
return (value == null || value.length === 0);
}
这将返回 true
undefined // Because undefined == null
null
[]
""
和零参数函数,因为函数的length
是它所采用的声明参数的数量。
要禁止后一类,您可能只想检查空字符串
function isEmpty(value){
return (value == null || value === '');
}