我如何检查一个变量是否不是null,也不是数字
How can I check if a variable is not null and also a number?
我正在使用以下内容:
$scope.option.selectedSubject != null && !isNaN($scope.option.selectedSubject)
有人能告诉我是否有其他方法可以检查变量是否是有效的定义数吗?有没有办法只需一次检查就可以做到这一点,或者我如何创建一个函数来进行检查,然后调用它?
也许这个函数可以帮助您:
function isANumber(x) {
return ((+x)===x);
}
这可能很有用:当在脚本中的某个地方分配变量时,变量只能是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
如果你只关心数字表示,这就足够了。
!isNaN($scope.option.selectedSubject + "")
注意+ ""
相关文章:
- 测试索引值是否等于某个数字的倍数
- jquery检查数字是否键入了isNaN
- 一个jquery验证器方法,它不接受纯数字或纯特殊字符,但接受上面是否有字母
- 是否可以在数字输入框中的小按钮中添加事件侦听器
- 是否可以在javascript中执行“;数字加负数”;
- ==是否创建垃圾?(将字符串与数字进行比较时)
- 试图检查表单中的值是否为一个设定范围内的数字
- 使用 Javascript 检查文本区域值是否为数字
- 货币过滤器是否仅适用于使用 $scope.$eval() 的数字
- jQuery 验证输入文本是否仅接受数字、单词或日期
- 检查字符串是否等于一个单词和一个数字
- 检查输入是否都是数字html javascript
- 检查给定的数字是否属于node.js中的Fibonacci序列
- 验证数字是否在0.00到20.00之间的正则表达式
- 如何在javascript中测试字符串是否包含带正则表达式的数字
- javascript测试一个值是否是一个数字和一个大于0的数字
- 如何在函数中编写 if/else 语句,告诉我一个数字是否可以被 2 整除(在 javascript 中)
- Javascript正则表达式,用于检查字符串是否为有效数字
- 验证javascript中的输入是否在2个数字之间
- 当一些文本粘贴到文本框中时(没有设置超时),是否检查数字