1-10练习

1-10练习

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>arguments</title>
</head>
<body>
<script>
    var userName=prompt("请输入用户名");
    var userPwd=prompt("请输入密码");
    
    function login(){
         while(isNaN(arguments[1])){//补充代码

          alert("密码错误");

          arguments[1]=prompt("请输入密码");

        }
        arguments[2]=prompt("请输入验证码");

        while(arguments[2].length<4){//补充代码

          alert("验证码不小于4位");

          arguments[2]=prompt("请输入验证码");

        }
    }
    login(userName,userPwd);
</script>
</body>
</html>

1.arguments[2]不是应该取login的第三个数值吗?我没有第三个数值应该是undefined才对吧?

2.为什么在加了第三个数值之后,程序运行到输入密码后就不会弹出密码错误这程序框?如下

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>arguments</title>
</head>
<body>
<script>
    var userName=prompt("请输入用户名");
    var userPwd=prompt("请输入密码");
    
    function login(){
         while(isNaN(arguments[1])){//补充代码

          alert("密码错误");

          arguments[1]=prompt("请输入密码");

        }arguments[2]=prompt("请输入验证码");

        while(arguments[2].length<4){//补充代码

          alert("验证码不小于4位");

          arguments[2]=prompt("请输入验证码");

        }
    }
    login(userName,userPwd,sure);
</script>
</body>
</html>

3.不是应该先执行密码的输入错误才执行验证码的输入错误吗?为什么在开头加了var sure=prompt("请输入验证码");之后,会先执行1:输入密码,2:输入验证码,3:密码输入错误,4:验证码输入错误。为什么会是这样的错误顺序的?

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

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

2回答
好帮手慕星星 2018-03-13 17:35:54

测试了你的代码:

1、先弹出输入用户名,再弹出输入密码,然后调用login函数,进入while循环,判断第二个参数是否位数字,如果是,弹出请输入验证码,也就是第三个参数,但是传入的形参中没有,所以进入不了while循环,程序直接停止执行,是不会报错的。

2、你的编程本身就是有问题的,虽然传入了第三个参数,但是你没有定义,所以会报错,程序执行不了。在外面定义一下就可以了。

3、如果在外面添加var sure=prompt("请输入验证码");,先执行login函数外面的代码,所以先弹出名字,密码,验证码,才会进入函数里面进行判断密码是否正确。

自己再测试下,祝学习愉快~~



  • 提问者 鸭梨啊 #1
    为什么第一组代码的arguments[2]=prompt("请输入验证码");也能够执行? 我再login里面没有第三个数了。
    2018-03-13 17:47:21
  • 好帮手慕星星 回复 提问者 鸭梨啊 #2
    代码是先执行prompt("请输入验证码");,弹出输入框,再进行赋值的,所以能够弹出。
    2018-03-13 18:13:55
sgo3 2018-03-13 17:29:31
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
            <title>arguments</title>
    </head>
    <body>
       
        <script>
            var userName=prompt("请输入用户名");
            var userPwd=prompt("请输入密码");
            var sure;
            function login(userName,userPwd,sure){
                while(isNaN(arguments[1])){
                    alert("密码错误");
                    arguments[1]=prompt("请输入密码");
                }
                //arguments[2]=prompt("请输入验证码");
                sure=prompt("请输入验证码");
                while(arguments[2].length<4){
                    alert("验证码不小于4位");
                    arguments[2]=prompt("请输入验证码");
                }
            }
            login(userName,userPwd,sure);
            </script>
    </body>
</html>

arguments[2]取的是第三个值,arguments[2]向数组中添加了新项,所以第三个值是你输入的值不是undefined
sure需要声明不然控制台上会报错
sure=prompt("请输入验证码");语句要放在密码判断之后就不会出现顺序错误

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

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

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

0 星

相似问题

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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