老师麻烦帮我检查一下

老师麻烦帮我检查一下

<!DOCTYPE html>

<html>

<head lang="en">

    <meta charset="UTF-8">

    <title>return</title>

</head>

<body>

<script>

    var input=prompt("请输入您的密码");

    function funName(input){

        if(input.length>=6&&input.length<=12){ return alert("密码格式正确");}

       

        else if(input.length<6){return alert("密码不能小于六位数");}

       

        else if(input.length>12){return alert("密码不能大于12位数")}

       

    }

    alert(funName(input));

</script>

</body>

</html>


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

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

1回答
好帮手慕久久 2021-12-09 15:34:38

同学你好,效果不正确,当随意输入一个密码后,弹出对应的提示文字后,还会继续弹出undefined:

https://img1.sycdn.imooc.com//climg/61b1af870958b4d804380137.jpg

https://img1.sycdn.imooc.com//climg/61b1af8c099a41da04650097.jpg

https://img1.sycdn.imooc.com//climg/61b1af980932b1b704750095.jpg

需要提前知道:alert方法本身没有返回值(或者说返回值是undefined)。

如下这样写,既会弹出提示信息(第一次弹框),还会给funName函数设置返回值为undefined:

https://img1.sycdn.imooc.com//climg/61b1b00a0944635308430219.jpg

代码执行到下图中的alert时,就会把返回值undefined弹出来(第二次弹框):

https://img1.sycdn.imooc.com//climg/61b1b037099504e307170418.jpg

有两种修改方式:

1、funName中,不调用alert方法,直接将“弹框中的提示”设置成函数返回值:

https://img1.sycdn.imooc.com//climg/61b1b0aa097343c607590482.jpg

2、只在funName中调用alert,不使用return设置返回值:

https://img1.sycdn.imooc.com//climg/61b1b0ff09bc53d808090459.jpg

祝学习愉快!

  • 提问者 豆包侠 #1

    老师 我这里有点点混乱的是 不写alert 只写个"密码格式正确"也能跳出提示框 这是为什么 

    2021-12-09 16:31:33
  • 好帮手慕久久 回复 提问者 豆包侠 #2

    同学你好,第一种写法是在funName外面调用了alert了:

    https://img1.sycdn.imooc.com//climg/61b1c3840978eddc04010089.jpg

    所以能弹出弹框。

    弹框中的内容是函数的返回值,即return后面的内容:

    https://img1.sycdn.imooc.com//climg/61b1c41009ac9cff10490515.jpg

    给同学换个写法参考:

    https://img1.sycdn.imooc.com//climg/61b1c4fa0920f81207550304.jpg

    可以把例子敲一下,仔细看看注释,理解一下。

    2021-12-09 16:58:41
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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