Javascript 检查是否为空和数字的适当方法

Javascript 检查是否为空和数字的适当方法,javascript,Javascript,我看到到处都是你应该使用的地方!isNaN函数,用于检查值是否为数字。这个方法对我来说似乎很奇怪,因为我一直使用下面的方法,它似乎可以轻松快速地检查null和数字。这个方法有什么问题吗 var num = getCookie('testnum'); if (+num) { console.log('num is not null and is a number'); } 谢谢假设您想检查字符串是否包含文本js编号(而不包含其他内容),那么是的,有一个问题: var num = "0"; 它可

我看到到处都是你应该使用的地方!isNaN函数,用于检查值是否为数字。这个方法对我来说似乎很奇怪,因为我一直使用下面的方法,它似乎可以轻松快速地检查null和数字。这个方法有什么问题吗

var num = getCookie('testnum');
if (+num) { console.log('num is not null and is a number'); }

谢谢

假设您想检查字符串是否包含文本js编号(而不包含其他内容),那么是的,有一个问题:

var num = "0";
它可以通过测试来修复

if (num==+num) {
试试这个:

if (!isNaN(parseInt(num))) { console.log('This is a number'); } 如果(!isNaN(parseInt(num))){ log('这是一个数字'); }
检查这是否是数字的最佳方法之一是使用
isFinite()
isNaN()
方法。也不要忘记对象检查

function isNumber(value) {
    return (
        Object.prototype.toString.call(value) == '[object Number]' &&
        isFinite(value) && 
        !isNaN(value)

    )
}

嗯,在这件事上你们比我聪明多了。在做了更多的研究之后,很明显,对于像我这样的普通程序员来说,确定一个值是否是一个数字是一件有点深奥的事情。出于这个原因,我决定求助于jQuery,让专业人士来处理如此复杂的问题。谢谢你抽出时间。这是我的解决方案,我希望是有效的,谢谢

function isNum(val) {
    return $.isNumeric(val);
}

function isNumNotZero(val) {
    return ($.isNumeric(val) && +val != 0);
}

你说的“零”是指“零”?好吧,我明白你的意思。值为0将是错误的!那么正确的方法是:if(num&&!isNaN(num))?@scuzzlebuzzle评论中你的问题的答案是:否。零是一个数字。用这种方式,
isNumber(null)
给你假。你是对的,忘了这个。首先,我们要检查这是数字,然后再检查其他。用
alert(typeof value)
而不是
Object.protoyp..
?@reporter这不是检查对象类型的正确方法。尝试发出
警报(typeof[])
,您将得到
对象
。这不正确。包括支票号码的jQuery。。。这真是个好主意。