是否有一个通用的JavaScript函数来检查变量是否有值,并确保它不是未定义的或空的?我有这个代码,但我不确定它是否涵盖所有情况:
function isEmpty(val){
return (val === undefined || val == null || val.length <= 0) ? true : false;
}
是否有一个通用的JavaScript函数来检查变量是否有值,并确保它不是未定义的或空的?我有这个代码,但我不确定它是否涵盖所有情况:
function isEmpty(val){
return (val === undefined || val == null || val.length <= 0) ? true : false;
}
当前回答
function notEmpty(value){
return (typeof value !== 'undefined' && value.trim().length);
}
它还将检查空格(“”)以及以下内容:
null,未定义,NaN,空,字符串(“”),0,false
其他回答
对于我的案例,我尝试了if null,“”!变量,但它不起作用。
查看下面的代码以从html字段获取文本
var status=$(this).text(); //for example (for my case)
如果状态变量中没有值(没有文本),我试图将值“novalue”设置为状态变量。
以下代码有效。
if(status == false)
{
status='novalue';
}
当没有找到satus变量的文本时,上面的代码将“novalue”分配给状态变量
这是最安全的支票,我还没有看到它像这样贴在这里:
if (typeof value !== 'undefined' && value) {
//deal with value'
};
它将涵盖从未定义价值的情况,以及以下任何情况:
无效的undefined(未定义的值与从未定义的参数不同)0“”(空字符串)假的NaN公司
已编辑:更改为严格相等(!==),因为这是现在的标准;)
可以使用参数成为数组的参数滤器
函数validateAttributes(arg1、arg2、arg3、arg4){var args=对象.values(参数);return(args.filter(x=>x===null||!x))。长度<=0}console.log(validateAttributes('1',2,3,4));console.log(validateAttributes('1',2,3,null));console.log(validateAttributes('1',未定义,3,4));console.log(validateAttributes('1',2,'',4));console.log(validateAttributes('1',2,3,null));
第一个评分最好的答案是错误的。若值未定义,则会在现代浏览器中引发异常。您必须使用:
if (typeof(value) !== "undefined" && value)
or
if (typeof value !== "undefined" && value)
您可以只检查变量是否具有真实值。这意味着
if (value) {
// do something..
}
如果值不是:
无效的未定义NaN公司空字符串(“”)0假的
上面的列表表示ECMA-/Javascript中所有可能的错误值。在ToBoolean部分的规范中找到它。
此外,如果您不知道变量是否存在(也就是说,如果声明了变量),则应使用typeof运算符进行检查。例如
if (typeof foo !== 'undefined') {
// foo could get resolved and it's defined
}
如果您可以确定至少声明了一个变量,那么应该直接检查它是否具有如上所示的真实值。