我1-4习题哪错了?

我1-4习题哪错了?

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>手机号码验证</title>
</head>
<body>
    <script>
var number=parseInt(prompt("请输入您的手机号"));
if(typeof(number)==Number){
   if(number.length==11){
       document.write("号码输入正确")
   }else{
       document.write("输入的号码必须是11位")
   }
}
else{
   document.write("请输入11位手机号码")
}//补充代码  
</script> 
</body>  
</html>


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

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

2回答
好帮手慕糖 2017-07-07 09:34:31

你好,接收的值为num,通过typeof(num)返回的是number,表示:num是数字(number)类型的。但是使用检测返回的值即(bumber)是属于字符串类型的(可以尝试检测下typeof(number)这个的返回值)。祝学习愉快!

好帮手慕糖 2017-07-05 11:11:36

你好,建议:输入的值使用num来接收,这样便于下面的理解,即:var num=parseInt(prompt("请输入您的手机号"));问题如下几点:

1、typeof(num)返回的值是number表示num这个值属于数字类型,但是返回的值number本身属于字符串形式,可使用:    console.log(typeof(typeof(num)));来测试下。所以判断条件应该为:if(typeof(num)=="number"){}

2、数字本身是没有办法测试长度的,应转为字符串形式,即:if(num.toString().length==11){}

3、可参考下列代码:

    <script>

        var num=parseInt(prompt("请输入您的手机号"));

        console.log(typeof(typeof(num)));

        if(typeof(num)=="number"){

           if(num.toString().length==11){

               document.write("号码输入正确")

           }else{

               document.write("输入的号码必须是11位")

           }

        }

        else{

           document.write("请输入11位手机号码")

        }//补充代码  

    </script> 

祝学习愉快!

  • 提问者 无限龙神奥菲斯 #1
    既然返回的值number本身属于字符串形式,为什么还要转为字符串形式??
    2017-07-06 21:26:47
  • 提问者 无限龙神奥菲斯 #2
    还有就是判断条件typeof(num)=="number" 为什么是“number”而不是字符串string??
    2017-07-06 22:43:43
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
前端小白入门系列课程
  • 参与学习           人
  • 提交作业       11218    份
  • 解答问题       36713    个

从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!

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

在线咨询

领取优惠

免费试听

领取大纲

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