1-11问题3

1-11问题3

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
    <script>
      var input=prompt("请输入您的密码");
    // 补充代码
     function funName(num1) {
     while(num1){
     if(num1.length>=6 && num1.length<=12){
     return alert("输入密码正确");
     }
     else if(num1.length<6){
     alert("密码不能小于6位");
     num1=prompt("请输入您的密码");
     }
     else{
     alert("密码不能大于12位");
     num1=prompt("请输入您的密码");
     }
     }
     }
     
    
     funName(input);
</script>
</body>
</html>

终于是实现看似正确的效果了,但我的问题是:让我输入小于6或大于12的数字时,我的目的是让其循环,在提示我输错后再给我一次机会让我持续输入直到正确为止,那么这个时候我该把prompt这个人机互动的语法赋给谁呢,赋给num1这个我新创造的变量是可行的,但赋值给input就错乱了,也就是说,input这个变量所携带的值(也就是玩家第一次输入的东西)从头到尾就用了一次咯,之后都和input没关系了???,老师能详细讲讲这个循环运作的道路吗,我现在有点糊涂了,即使用了num1达到了效果也不知他运作的道理

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

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

4回答
好帮手慕糖 2018-07-10 09:34:57

你好,1、这里不太明白你的意思,重新吃赋值,var num1 = input;这个不知道你是在那块进行的,这个就是又声明一个变量交num1;

2、本段代码中,函数在声明的时候,没有设置形参,然后调用的时候传递了实参,是没有任何意义的,跟不传递的效果是一样的。所以调用函数的时候直接funName()就可以了。

若能解决你的疑问,望采纳。

祝学习愉快~

提问者 慕丝6937110 2018-07-09 22:43:22
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
    <script>
      var input=prompt("请输入您的密码");
    // 补充代码
     function funName() {
     while(input){
     if(input.length>=6 && input.length<=12){
     return alert("输入密码正确");
     }
     else if(input.length<6){
     alert("密码不能小于6位");
     input=prompt("请输入您的密码");
     }
     else{
     alert("密码不能大于12位");
     input=prompt("请输入您的密码");
     }
     }
     }
     
    
     funName(input);
</script>
</body>
</html>

好的好的,原来外面的变量可以直接写在函数里面去用。之后的问题老师你可能没有理解我的意思,我的这个代码里,函数的括号里没有给他创造新的变量,这个函数我直接使用了最前面创造的变量input,我的问题是:在最后调用这个函数时funName(input)这个我不太明白,按理说,这里的括号里写的是我之前创造在函数里的那个变量的值,例如num1,即 (var num1 = input),但现在函数里没有创造变量,而这里直接写input,那么这个作为值的input到底是赋给谁了??我不明白,为什么这样做代码依旧可以成功??

好帮手慕糖 2018-07-09 17:14:37

你好,不太明白你说的;其中1、条件里用input?这里指的条件具体是哪一块?

另:不在函数中创建变量,外部的值也是可以访问的这个是没问题的。

关于你说的函数调用这里依旧要写变量的值不太明白,这里传递的其实是参数,若你在声明函数的时候,不创建参数,这里也可以不传递,就该题而言,可以不使用参数的,

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

关于函数可以注意下:1、声明的时候可以有参数,也可以没有参数,这个没有强制的要求,可根据需求与具体的代码来决定。

2、函数定义参数的时候,在调用的时候,传递进去的是什么,参数就什么。例:如下,num是参数,传递的是5,那么弹出的num就是5,这里可以测试下。

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

建议:可以再把函数的定义与调用看下来结合理解哦。

若能解决你的疑问,望采纳。

祝学习愉快~

好帮手慕糖 2018-07-09 15:48:05

你好,num1是参数,调用的时候传入的什么就是什么,这里传入的是input,所以num1可以代码input,不能直接用input是因为你的长度是使用num1来判断的,若你使用input来重新接收变量的话,是无法判断长度的。

若能解决你的疑问,望采纳。

祝学习愉快~

  • 提问者 慕丝6937110 #1
    经过测试,我发现只要条件和之后写prompt的地方用统一的一个变量都是可以运作正常的,也就是说,条件里用input,之后input=prompt()也是可以的。这也就说明了,当我创造一个函数时,不一定要在函数里创造新的变量,之前在函数之外的变量也是可以使用的,电脑不会看不懂的。但是!:我最后调用函数的时候,还是依旧得写funName(变量的值),这个地方我不太明白,而这道练习里,最后的funName()这个括号里写的是一个变量的名字而不是值,我也没有把这个input的变量名赋值给其他写在函数里的新的变量,这样为什么也可以成功??????
    2018-07-09 16:58:09
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星

相似问题

登录后可查看更多问答,登录/注册

请稍等 ...
微信客服

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

帮助反馈 APP下载

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

公众号

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

在线咨询

领取优惠

免费试听

领取大纲

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