Javascript如何判断一个变量是数字类型?
2015-01-07 16:28
639 查看
isNaN()不能判断一个变量是否为数字类型,isNaN(123)值为false,isNaN('123')值也为false。 isNaN() 的实际作用跟它的名字isNaN并不一致,isNaN(NaN)值为true,isNaN(Number("xyz"))值为true,isNaN("abc")值为true,isNaN(123/0)值为false,所以它实际是将不能转换成number类型的其他类型及其自身NaN都判断为true,而除了其自身NaN外所有的number类型都判断为false(NaN的类型也是number),能转换成number类型的其他类型也判断为false,比如'123'类型是string,但判断为false。 typeof(num)=="number" 较为准确,但NaN也是number类型,Number("xyz")也是number类型,如果你只要区分123跟'123',那就没什么问题了,可以用typeof(num)==="number"。 如果要排除除数为0的情况,要再判断(num!==Infinity),即(typeof(num)=="number")&&(num!==Infinity)。 再全面一点:(typeof(num)==="number")&&(num!==Infinity)&&!isNaN(num) 资料: Number.isNaN()已经被添加到了ECMAScript 6中,Firefox已经实现了。 代码如下: Number.isNaN = function (value) { return typeof value === 'number' && isNaN(value); }; NaN是唯一一个满足(x !== x)不等式的值
相关文章推荐
- Javascript如何判断一个变量是普通变量还是数组还是对象?
- python中如何判断一个变量的数据类型
- c++中怎么判断一个string类型的字符串变量是否为数字?
- 如何判断一个变量是否是数字而不是字符串
- javascript如何判断参数为一个数组类型
- javascript如何判断变量类型
- (php的弱类型导致的小问题)某变量可能是数字或非数字(对象、字符串、json等)时,应该如何去判断
- python中如何判断一个变量的数据类型?(原创)
- c++中怎么判断一个string类型的字符串变量是否为数字?
- JavaScript如何判断一个值是不是数字?
- c++中怎么判断一个string类型的字符串变量是否为数字?
- python中如何判断一个变量的数据类型
- python中如何判断一个变量的数据类型?(原创)
- javascript 如何判断一个对象的类型
- (php的弱类型导致的小问题)某变量可能是数字或非数字(对象、字符串、json等)时,应该如何去判断
- 如何判断一个变量是数组Array类型
- JavaScript中如何检测一个变量是一个String类型?请写出函数实现
- C/C++中如何判断一个输入的变量是否和其定义的类型一致
- javascript中如何判断变量类型
- JavaScript中如何判断变量是数组、函数或是对象类型