为了账号安全,请及时绑定邮箱和手机立即绑定

js 关于数据类型的问题 好多大牛都回答不了 跪求答案

js 关于数据类型的问题 好多大牛都回答不了 跪求答案

伟大的五年 2016-07-20 12:13:11
        a.value="5644445";//                b.onclick=function(){//        //                if(isNaN(a.value))//                {//                   alert(a.value)           //                   alert("1");//                }//                else//                {//                    alert(a.value)//                    alert(2);                     //正常会进入 else//                }//            }//                //                                                b.onclick=function(){                    var c=a.value;                    if(isNaN(c))                    {                        alert(Number(c))          //即使输入为 "5644445";  就会转为NaN为什么?                        alert(1);                    }                    else                    {                        alert(Number(c))                        alert(2)                    }                }
查看完整描述

1 回答

?
MadMarical

TA贡献79条经验 获得超122个赞

你好。

“”双引号包含起来的部分表示是一个字符串。所以a.value的类型是string。nan表示not a number,显然做判断时string != number。

至于为什么alert操作时会显示数字,是因为你用了number强转c为number类型。

查看完整回答
1 反对 回复 2016-07-20
  • 伟大的五年
    伟大的五年
    那按照你的思路 怎么解释第一个 函数 也就是 注释那段内容的执行呢?
  • MadMarical
    MadMarical
    你好。注释内容的结果不会有任何区别,当然是进入else分支。因为a.value并不是一个number,isnan返回false。if判断分支被跳过,进入else分支。接着alert a.value 并 alert2.
  • 伟大的五年
    伟大的五年
    不是一个number会 isnan返回一个true吧?number()能转出来的isnan返回false。
点击展开后面4
  • 1 回答
  • 0 关注
  • 1217 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信