如何检查变量是否为空以及数字?

时间:2013-08-20 13:05:47

标签: javascript

我使用以下内容:

$scope.option.selectedSubject != null && !isNaN($scope.option.selectedSubject)

有人可以告诉我是否有其他方法来检查变量是否是有效的定义数字?有一些方法我可以通过一次检查来完成这项工作,或者我如何创建一个函数来执行此检查然后调用它?

3 个答案:

答案 0 :(得分:3)

也许这个功能可以帮到你:

function isANumber(x) {
 return ((+x)===x);
}

答案 1 :(得分:1)

这可能有用:要知道一个变量只能在脚本中的某个位置被null分配,默认情况下它永远不会是null

var foo; // undefined
foo = null;
// null could be returned by a function too, which is the most common use of null

正如 zzzzBov 在其评论中所述,“isNaN将检查该值的数字表示是否为NaN。这意味着isNaN('500')false,虽然isNaN('foo')true。“

至于回答你的问题,请查看此表:

!isNaN(undefined); // false
!isNaN(null); // true
!isNaN(); // false
!isNaN(''); // true <= Watch out for this one !
!isNaN('test'); // false
!isNaN('10'); // true
!isNaN(10); // true

如果你想确定它是一个数字,你应该使用typeof,如果这是一个字符串,检查它是否有长度。将这一切包装在一个函数中会产生如下内容:

function isNumber (num) {
    // Return false if num is null or an empty string
    if (num === null || (typeof num === "string" && num.length === 0)) {
        return false;
    }

    return !isNaN(num);
}

isNumber(undefined); // false
isNumber(null); // false
isNumber(); // false
isNumber(''); // false
isNumber('test'); // false
isNumber('10'); // true
isNumber(10); // true

答案 2 :(得分:1)

如果你只关心数字演示,那就可以了。

!isNaN($scope.option.selectedSubject + "")

注意+ ""