是否有一个通用的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;
}
当前回答
try{
let vari = obj.propTest; // obj may be don't have propTest property
...
} catch(NullException){
// do something here
}
我认为使用try-catch可以避免任何空检查错误,在Angular或JavaScript中也是如此只是捕获空异常并在其中处理。
其他回答
您可以只检查变量是否具有真实值。这意味着
if (value) {
// do something..
}
如果值不是:
无效的未定义NaN公司空字符串(“”)0假的
上面的列表表示ECMA-/Javascript中所有可能的错误值。在ToBoolean部分的规范中找到它。
此外,如果您不知道变量是否存在(也就是说,如果声明了变量),则应使用typeof运算符进行检查。例如
if (typeof foo !== 'undefined') {
// foo could get resolved and it's defined
}
如果您可以确定至少声明了一个变量,那么应该直接检查它是否具有如上所示的真实值。
return val || 'Handle empty variable'
是在许多地方处理它的一种非常好且干净的方法,也可以用于分配变量
const res = val || 'default value'
! 检查空字符串(“”)、null、undefined、false以及数字0和NaN。例如,如果字符串为空var name=“”,那么console.log(!name)返回true。
function isEmpty(val){
return !val;
}
如果val为空、null、undefined、false、数字0或NaN,则此函数将返回true。
OR
根据您的问题域,您可以使用like!val或!!价值。
这可能很有用。
数组中的所有值都表示您想要的值(空值、未定义值或其他值),您可以在其中搜索所需的值。
var variablesWhatILookFor = [null, undefined, ''];
variablesWhatILookFor.indexOf(document.DocumentNumberLabel) > -1
var myNewValue = myObject && myObject.child && myObject.child.myValue;
这永远不会抛出错误。如果myObject、child或myValue为空,则myNewValue将为空。不会引发任何错误