关于作业的问题

来源:1-16 编程练习

qq_命运_szFJMV

2018-12-20 00:05:40

<body>

<script>

    var userName=prompt("请输入用户名");

    var userPwd=prompt("请输入密码");

    var sure=prompt("请输入验证码");

    function login(){

        if(isNaN(arguments[1])){//补充代码

          alert("密码错误");

        }

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

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

        }

    }

    login(userName,userPwd,sure);

</script>

</body>

</html>

老师我想问的是为什么验证码输入后才出现提示,咋么才能在密码或者验证码输入错误后直接跳出相关提示呢?

它们的顺序有社么规则?


写回答

4回答

好帮手慕夭夭

2018-12-24

你好同学 ,并不是参数值为空 , 而是因为函数里面的变量是布局变量 , 局部变量在全局下面是访问不到的 ,所以当你在全局下面调用函数 ,传入参数 ,userPwd,sure在全局下面并没有定义 ,所以会报错找不到这些变量. 

我们要让函数在调用时传入参数是因为这些参数函数里面用不到 . 例如有一个函数a里面有一个变量想在函数b中使用 , 函数a的变量只能在函数a里面使用 ,b是拿不到的 .这个时候我们就可以在a中调用b ,把a里面的变量作为参数 传给b使用了 .

同学说的最后一个问题 , 就回到了你第一次上传的代码了 . 把弹窗写在函数全局下 , 也就是函数外边 , 这样就能作为参数传递了 .但是这样的话 ,因为代码是从上而下顺序执行的  , 就不能实现你第一次提问的需求了 . 如果同学想要实现你自己的需求 , 建议按照老师第一次截图的代码去修改 .

祝学习愉快 ,望采纳 .


0

好帮手慕夭夭

2018-12-21

你好同学 , 根据你第二次的代码 ,错误如下 :

http://img.mukewang.com/climg/5c1c45740001545e08950620.jpg

建议同学按照老师第一次回复的去修改 , 祝学习愉快 ,望采纳 .

0
hq_命运_szFJMV
h 可以这样理解吗?arguments1/2搜索的数值为空所以后面的代码都没有执行?然后函数里面的变量是局部变量意思是在函数里定义了变量的值所以不需要外部的接受是吗?那有没有不把变量写入函数内,通过arguments来接收提示的方法呢?
h018-12-22
共1条回复

qq_命运_szFJMV

提问者

2018-12-20

<html>

<head>

    <meta charset="UTF-8">

    <title>arguments</title>

</head>

<body>

<script>

    var userName=prompt("请输入用户名");

    function login(){

        var userPwd=prompt("请输入密码");

        if(isNaN(arguments:[1])){//补充代码

          alert("密码错误");

        }

        var sure=prompt("请输入验证");

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

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

        }

    }

    login(userName,userPwd,sure);

</script>

</body>

</html>

是这样的为什么这样修改之弹出了一个输入框我想不出来翁提出在哪里

0

好帮手慕夭夭

2018-12-20

你好同学 ,代码执行规则就是从上往下顺序执行 ,当你把前面的弹窗输入完 , 继续执行函数 ,然后函数里面的提示才会弹出来 .同学要想实现输入密码就立即验证密码 ,就要把弹窗写在判断的前面, 验证码弹窗写在验证码前面 , 如下:

把弹窗写在函数里面 , 函数调用时不需要传递参数了 .

http://img.mukewang.com/climg/5c1b035a0001c23207150489.jpg

希望解答了你的疑惑 , 祝学习愉快 ,望采纳 .


0
hq_命运_szFJMV
h <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>arguments</title> </head> <body> <script> var userName=prompt("请输入用户名"); function login(){ var userPwd=prompt("请输入密码"); if(isNaN(arguments[1])){//补充代码 alert("密码错误"); } var sure=prompt("请输入验证"); if(arguments[2].length<4){//补充代码 alert("验证码不得小于4位") } } login(userName,userPwd,sure); </script> </body> </html> 老师如果我这样修改为什么后面两个显示不出来?
h018-12-20
共1条回复

0 学习 · 36712 问题

查看课程