老师看一下哪里错了

老师看一下哪里错了

<!DOCTYPE html>
<html>

<head lang="en">
<meta charset="UTF-8">
<title>手机号码验证</title>
</head>

<body>
<script>
//补充代码
var tel = prompt('请输入您的手机号码');
if (tel.length == 11) {
if (typeof tel == Number) {
alert('输入的手机号正确')
} else {
alert('输入的手机号必须是11位纯数字')
}
} else {
alert('请输入11位手机号码')
}

</script>
</body>

</html>


正在回答

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

1回答

同学你好,解答如下:

typeof判断参数类型时,不会将参数进行隐式转化,比如typeof "12345678900" 的结果是“string”,不是Number:

http://img1.sycdn.imooc.com//climg/609b41fe09f70df904070101.jpg

通过prompt获取到的内容,本身就是字符串形式,所以导致如下if条件永远不会满足,因此结果不对:

http://img1.sycdn.imooc.com//climg/609b425009be7af606860215.jpg

建议使用isNaN方法判断参数是否是数值。

isNaN在判断时,会将参数进行隐式转化,即会把"123"转成数字123再判断,如下:

http://img1.sycdn.imooc.com//climg/609b42a309e73e9a03340090.jpg

效果就是isNaN会把“123”看成数值类型,这正是我们需要的效果,所以调整如下:

http://img1.sycdn.imooc.com//climg/609b431f09e0dce707030312.jpg

祝学习愉快!

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

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

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

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

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