isNaN应该是依据Number来判断的。isNaN('1')应该是false. 为什么输入'1' 弹出的答案是 "输入的不是数字"
答案:2 悬赏:20 手机版
解决时间 2021-04-05 11:58
- 提问者网友:沦陷
- 2021-04-04 14:49
isNaN应该是依据Number来判断的。isNaN('1')应该是false. 为什么输入'1' 弹出的答案是 "输入的不是数字"
最佳答案
- 五星知识达人网友:第幾種人
- 2021-04-04 15:20
你的代码运行后,输入1,弹出的是“你输入的是数字”,但是isNaN(str)的返回值是false才对;因为:
if(true){
//执行的是返回值true的代码
}else{
//执行的是返回值false的代码
}
而你获取到的str其实是字符来的,需要用parseFloat() 和 parseInt() 来转换成数字格式才对。
PS:isNaN() 函数通常用于检测 parseFloat() 和 parseInt() 的结果,以判断它们表示的是否是合法的数字。追问没明白。。 我现在做出了的结果已经是想要的了,但是我不明白为什么我输入像‘2’这样的字符串 经过isNaN('2')之后 返回应该是false。 应该走else后的输入的是数字呀,为什么会走true里的 输入的不是数字呢?追答不会啊,我复制了你那段代码去运行,然后输入2,弹出的结果是“你输入的是数字”啊。
追问你输入的是2 我说的是'2' 这个追答isNaN()的意思是非数字,里面传入数字的话就返回false,传入的不是数字的话就返回true追问我输入2的时候是false。 输入‘2’这种字符串的时候也应该是false吧。
isNaN(2)和isNaN(‘2’)的结果也该都是false。 但是输入后者‘2’ 却走的是true追答isNaN()的意思是非数字,
如果你输入2的时候,传入数字,就返回false
如果你输入'2'
,传入的不是数字的话就返回true.
也就是说:
isNaN(2)返回false
isNaN(‘2’)返回true
if(true){
//执行的是返回值true的代码
}else{
//执行的是返回值false的代码
}
而你获取到的str其实是字符来的,需要用parseFloat() 和 parseInt() 来转换成数字格式才对。
PS:isNaN() 函数通常用于检测 parseFloat() 和 parseInt() 的结果,以判断它们表示的是否是合法的数字。追问没明白。。 我现在做出了的结果已经是想要的了,但是我不明白为什么我输入像‘2’这样的字符串 经过isNaN('2')之后 返回应该是false。 应该走else后的输入的是数字呀,为什么会走true里的 输入的不是数字呢?追答不会啊,我复制了你那段代码去运行,然后输入2,弹出的结果是“你输入的是数字”啊。
追问你输入的是2 我说的是'2' 这个追答isNaN()的意思是非数字,里面传入数字的话就返回false,传入的不是数字的话就返回true追问我输入2的时候是false。 输入‘2’这种字符串的时候也应该是false吧。
isNaN(2)和isNaN(‘2’)的结果也该都是false。 但是输入后者‘2’ 却走的是true追答isNaN()的意思是非数字,
如果你输入2的时候,传入数字,就返回false
如果你输入'2'
,传入的不是数字的话就返回true.
也就是说:
isNaN(2)返回false
isNaN(‘2’)返回true
全部回答
- 1楼网友:爱难随人意
- 2021-04-04 15:54
或者你应该parseInt(str)一下,又或者你应该写isNaN(1)而不是isNaN('1')追问没明白。。 我现在做出了的结果已经是想要的了,但是我不明白为什么我输入像‘2’这样的字符串 经过isNaN('2')之后 返回应该是false。 应该走else后的输入的是数字呀,为什么会走true里的 输入的不是数字呢?
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯