我使用以下内容:
$scope.option.selectedSubject != null && !isNaN($scope.option.selectedSubject)
有人可以告诉我是否有其他方法来检查变量是否是有效的定义数字?有一些方法我可以通过一次检查来完成这项工作,或者我如何创建一个函数来执行此检查然后调用它?
答案 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 + "")
注意+ ""