首页 新闻 会员 周边 捐助

javascript isNaN对""怎么处理

0
悬赏园豆:30 [待解决问题] 解决于 2011-03-30 18:55

    <script type="text/javascript">
        var temp = "";
            if (!isNaN(temp)) {
              alert(123)
            }
    </script>

为什么会弹框啊?temp怎么成数字了?

fumen的主页 fumen | 初学一级 | 园豆:4
提问于:2011-03-15 18:55
< >
分享
所有回答(9)
-1

isNaN里面的参数是必需值,不能检测空字符串的,如果要在这样用先验证是否为空

peter cheng | 园豆:431 (菜鸟二级) | 2011-03-16 10:03
我感觉也是
支持(0) 反对(0) fumen | 园豆:4 (初学一级) | 2011-03-16 23:44
-5

NaN是Not a Number的意思,空字符串当然不是数字了,所以true很正常啊

Gray Zhang | 园豆:17610 (专家六级) | 2011-03-16 10:49
-5

isNAN是判断是否是数字返回的是true和false,空格不是数字(本该返回false)但你在前面又加了个‘!’(‘!’否的意思)所有返回true(负负得正可以理解吧)  既然他返回的是真那么就认为他是数字 所有输出了数字  理解没 

小w威 | 园豆:37 (初学一级) | 2011-03-16 13:20
你自己好好理解一下吧,不多说 了
支持(0) 反对(0) fumen | 园豆:4 (初学一级) | 2011-03-16 23:47
0

isNaN 不对空白字符做处理 需要预先处理

码尔代夫iimax | 园豆:3138 (老鸟四级) | 2011-03-17 12:29
0

自己先判断长度吧!

小小刀 | 园豆:1991 (小虾三级) | 2011-05-07 10:35
0

这个和ECMAScript标准有关系;

JS属于弱类型的变成语言,就是类型之间定义很不明显,更可恶的是自动类型转换;

isNaN楼上几位都说的很清楚,检测提供的字符串是否为数字(is not a number);

 

"" :空字符串转换成数字就是0;别拍我,真的,自动类型转换搞的鬼.比如"" - 1 = -1;等

http://www.w3school.com.cn/js/jsref_isnan.asp这是对isNaN函数的详解,但是有误区(可以用 isNaN() 函数来检测算数错误,比如用 0 作除数的情况。这里说的不完整,如果分子可以转换成数字类型的,计算结果为infinity,也是数字);

 

一句话,isNaN检测参数时会进行一系列的转换,如果能转换成数字,则返回false,如果不能则返回true;

不知道说明白了没.

trancedly | 园豆:286 (菜鸟二级) | 2011-11-01 14:32
0
document.write(isNaN("")) // false
document.write(isNaN(" "))  // false
document.write(isNaN(0))  // false
document.write(isNaN(null)) // false
document.write(isNaN(false))  // false
document.write("" == false)  // true
document.write("" == 0)  // true
document.write(" " == 0)  // true
document.write(" " == false)  // true
document.write(" " == 0)  // true
document.write(0 == false) // true
document.write(" " == "") // false

不好解释,“ ”,false等同等于0的原故吧,这样用吧:

var temp = "";
if (!isNaN(parseInt(temp))) {
    alert(123)
}
lambert_li | 园豆:208 (菜鸟二级) | 2012-04-17 11:59
0

parseFloat(temp).tostring()="NaN"

 

parseInt(temp).tostring()="NaN"

Kingler | 园豆:146 (初学一级) | 2014-05-29 17:40
0

js把空白当作0了。就像true能转换为1一样。

Cat Qi | 园豆:761 (小虾三级) | 2014-11-27 11:52
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册