请问老师为啥当输入为11为数字时typeof(tel)结果不等于"number"

请问老师为啥当输入为11为数字时typeof(tel)结果不等于"number"

<!DOCTYPE html>

<html>

<head>

    <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

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

4回答
好帮手慕码 2020-08-18 14:39:36

同学你好,通过tel减0确实可以转换为数字类型,但是这样实现不太准确,例如:

http://img1.sycdn.imooc.com//climg/5f3b774109e1df0803050086.jpg

打印结果:

http://img1.sycdn.imooc.com//climg/5f3b774b09afb02a01090068.jpg

字符串abc虽然转换为数字了,但是不可以当做电话号码去录入,综上还是建议使用isNaN是实现哦!

祝学习愉快~

好帮手慕码 2020-08-18 13:54:46

同学你好,同学的想法非常棒,因为编程具有灵活性,同一种效果的实现方式有多种多样,只要效果实现即可。不过因为最开始不明白“tel-0”是什么意思,所以无法针对解答,给了同学另一种实现方式。

其实同学提问的每一个问题,老师们都非常认真的做出解答,老师就是抱着帮助同学解决问题的心态进行答疑的,但是由于环境,操作方式,语言沟通等问题,与同学理解的可能不一样,希望同学能够理解一下,。以后提问时,可以图文结合,将每一步操作描述的再稍微详细一点, 只有老师和同学之间相互配合,才能准确高效的帮助同学解决问题。

祝学习愉快~

  • 提问者 慕斯9523191 #1
    没有说老师不好的意思,我也就是单纯的解释一下老师不清楚什么的tel-0的问题,下次我会注意说清楚的,辛苦老师了。所以如果用if(typeof(tel-0)==number)的话的可以达到目的对吧。
    2020-08-18 14:21:17
好帮手慕码 2020-08-18 10:14:13

同学你好,不太清楚同学说的“tel-0”是什么意思,可以通过isNaN判断是否为纯数字,如下:

http://img1.sycdn.imooc.com//climg/5f3b37bf092e63b603780240.jpg

祝学习愉快~

  • 提问者 慕斯9523191 #1
    如果字符串里是数字的话可以通过操作数的隐式类型转换为数字进行运算这样就可以达到typeof返回的内容是数字的目的。我知道可以用isNaN,就是想多一种思路。
    2020-08-18 10:50:34
好帮手慕码 2020-08-17 17:39:54

同学你好,因为prompt函数返回的内容是字符串,我们可以打印出来看下:

http://img1.sycdn.imooc.com//climg/5f3a5033093277d902500032.jpg

打印结果:

http://img1.sycdn.imooc.com//climg/5f3a50460995bb4101470047.jpg

如果我的回答帮到了你,欢迎采纳,祝学习愉快~

  • 提问者 慕斯9523191 #1
    可以用tel-0进行转换么?
    2020-08-18 08:55:17
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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