时间:2021-05-25
我们知道JavaScript提供了typeof运算符,因此最容易想到的是用typeof来判断是否是number类型
function isNumber(obj) { return typeof obj === 'number'}这个函数对于整数和浮点数都没有问题,但对于NaN值也返回true这让人感到不爽,毕竟用isNumber判断通过后谁也不会用NaN去做算术运算。
那改进一下,用Object.prototype.toString试试
function isNumber(obj) { return Object.prototype.toString.call(obj) === '[object Number]'}和typeof判断一样,对于NaN也返回true,代码量还大了,这不是想要的结果。toString.call方式判断数组(Array)可行,数字则力不从心了。
再改进下,NaN值用isNaN函数来对付
function isNumber(obj) { return typeof obj === 'number' && !isNaN(obj)}这次,如果传入的是非数字(NaN或者可转成NaN的值)就返回false了
function isNumber(obj) { return typeof obj === 'number' && !isNaN(obj)}isNumber(1) // trueisNumber(1.2) // trueisNumber(NaN) // falseisNumber( parseInt('a') ) // false嗯,这个isNumber不错了,但还有一个等价的,用isFinite来判断
function isNumber(obj) { return typeof obj === 'number' && isFinite(obj) }到现在,最短代码的数字判断是此文提到的第三个使用isNaN函数的。下面隆重推出世界上最短的数字判断代码
function isNumber(obj) { return obj === +obj}对于整数,浮点数返回true,对于NaN或可转成NaN的值返回false。
没看懂是吗? 咕~~(╯﹏╰)
园友说这还不是世界上最短判断数字代码,参数obj可以改成一个字符的。(⊙o⊙)你是对的。
举一反三,类似的利用JS动态语言特性(运算符运算时内部自动类型转换)最短的判断还有
// 判断字符串function isString(obj) { return obj === obj+''}// 判断布尔类型function isBoolean(obj) { return obj === !!obj}总结
以上所述是小编给大家介绍的世界上最短的数字判断js代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
varie=!-[1,];这句代码在IE9之前曾被称为世界上最短的IE判定代码。代码虽短但确包含了不少javascript基础知识在里面。在这个例子中代码执行时
这个目前世界上最短的Javascript判定IE浏览器的方法来自俄罗斯!它已经在各版本的IE以及目前其他流行的浏览器上经过测试,基于IE的Bug,微软虽然已经意
JS如何判断不能为纯数字的代码: varpatrn=/^[0-9]*$/; if(patrn.test(confirmPassword)){ mu
我国是目前世界上人口排名第一位的国家,与之相对应的我国的网民在世界上也处于第一位,截至2015年,我国的网民已经达到7亿之多。而这个数字并不是网民的巅峰,从长远
我国是目前世界上人口排名第一位的国家,与之相对应的我国的网民在世界上也处于第一位,截至2015年,我国的网民已经达到7亿之多。而这个数字并不是网民的巅峰,从长远