老师 想请问下为什么这个形参可以没有值呀 上课的时候不是说如果实参多于形参的话的话实参会被丢弃吗 谢谢老师

老师 想请问下为什么这个形参可以没有值呀 上课的时候不是说如果实参多于形参的话的话实参会被丢弃吗 谢谢老师

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta http-equiv="X-UA-Compatible" content="IE=edge">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Document</title>

</head>

<body>

    <script>

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

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

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

        function login(a,b,c){

           

            if(isNaN(b)){

           

                alert("密码错误");

            }

           

            if(c.length<4){

           

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

            }

        }

        login(userName,userPwd,sure);

    </script>

</body>

</html>


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

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

1回答
好帮手慕久久 2022-07-09 10:08:59

同学你好,问题解答如下:

同学的代码中,形参a、b、c的值分别是userName、userPwd和sure,所以形参a不是没有值,只是具体的逻辑中,没有处理形参a而已(代码中没有写处理a的具体代码),这种情况是可以的。只要把参数正确的传过来,具体怎么处理、是否处理,是可以自定义的。

代码效果是对的,但是写法与任务要求不符。任务要求使用arguments对象来实现需求,即不用指定形参,如下:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>arguments</title>
</head>
<body>
    <script>
        var userName = prompt("请输入用户名");
        var userPwd = prompt("请输入密码");
        var sure = prompt("请输入验证码");

        function login() {
            // arguments[1]就对应同学的形参b
            if (isNaN(arguments[1])) {
                alert("密码错误");
            }

            // arguments[2]就对应同学的形参c
            if (arguments[2].length < 4) {
                alert("验证码不小于4位");
            }
        }

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

祝学习愉快!

  • 提问者 慕仙0240544 #1

    老师 意思是我用arguments的时候可以不写形参呗 没有任何影响?

    2022-07-09 10:13:08
  • 好帮手慕久久 回复 提问者 慕仙0240544 #2

    对的,arguments的好处就是可以不写形参,没有其他影响。

    2022-07-09 10:21:23
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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