else if(typeof(num)=="number")中的number

else if(typeof(num)=="number")中的number

<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <title>Title</title>
</head>
<body>
<script>
var stri="abc123";
   var num=parseInt(stri);
   if(num==NaN){
       alert(NaN);
   }
   else if(num==123){
       alert(123);
   }
   else if(typeof(num)=="number"){
       alert("num");
   }
   else{
       alert(stri);
   }
</script>

</body>
</html>

   else if(typeof(num)=="number")中的number为什么要用引号包起来,还有该成Number也报错?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

3回答
kingHawkWin 2017-03-24 17:54:58

老师前面讲过typeof返回值的类型只有一种,就是String类型,而它返回值的可能的值有‘string’、‘number’、‘boolean’等等。这里num返回值是NaN,typeof(NaN)返回值是字符串'number','number'=='number'是成立的,结果是true,最终弹出字符串'num'。如果把该句中'number'改为Number,用console.log(typeof(num)==Number)检测结果为false,就是说两边不相等,else if(typeof(num)==Number)这句不成立,执行下一个语句,最终弹出字符串‘str’。

路大锤 2017-03-21 17:23:32

这里加引号的number是字符串形式的,是指一个字符串。而不加引号的话,表示它是一个变量,但是并没有定义这个变量,所以就会报错。Number是不会报错的,因为Number为js的关键字,是可以不用声明的。

紫沐丶 2017-03-21 16:53:46

因为你前边的变量有字母,用parseint转后是isnan,所以错了

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
HTML5与CSS3实现动态网页 2018
  • 参与学习       1887    人
  • 提交作业       4643    份
  • 解答问题       5760    个

有HTML和CSS基础,却不知道如何进阶?本路径带你通过系统学习,完成从“会做网页”到“做出好的动态网页”的蜕变,迈出成为前端工程师的第一步。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师