协慌网

登录 贡献 社区

是否有一个标准函数来检查 JavaScript 中的 null,undefined 或 blank 变量?

是否有一个通用的 JavaScript 函数来检查变量是否有值并确保它没有undefined或为null ?我有这个代码,但我不确定它是否涵盖所有情况:

function isEmpty(val){
    return (val === undefined || val == null || val.length <= 0) ? true : false;
}

答案

您可以检查变量是否具有truthy值。这意味着

if( value ) {
}

如果value 不是,则评估为true

  • 空值
  • 未定义
  • 为 NaN
  • 空字符串(“”)
  • 0

以上列表表示 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 === '');
}