js_函数参数的相关问题

时间:2020-07-03 19:39:38   收藏:0   阅读:39

arguments

argument对象是什么

arguments是用来保存函数实参的对象,它在函数创建时会自动创建,在函数调用时会初始化。它保存有实参的值,callee属性(函数的指针),length属性(传入实参的数量)

在传入实参情况下arguments对象与形参的对应关系

        function a(val) {
            console.log(val); //3
            console.log(arguments[0]); //3
            arguments[0] = 7;
            console.log(val); //7
            val = 10;
            console.log(arguments[0]);//10
        }
        a(3);

在不传入参数情况下arguments对象与形参的对应关系

        function a(val) {
            console.log(val); //undefined
            console.log(arguments.length); //0
            arguments[0] = 7;
            console.log(val); //undefined
            console.log(arguments.length); //0
            val = 10;
            console.log(arguments[0]); //7
        }
        a();

在传入实参数与形参数不对等情况下形参与arguments对象的对应关系

        function a(val1, val2) {
            console.log(val1, val2); //3,undefined
            console.log(arguments[0], arguments[1], arguments.length); //3,undefined,1
            val1 = 10;
            val2 = 20;
            console.log(val1, val2); //10,20
            console.log(arguments[0], arguments[1], arguments.length); //10,undefined,1
            arguments[1] = 30;
            console.log(val2);//20
        }
        a(3);

在预定义形参的情况下,形参与arguments的对应关系

        function a(val1, val2 = 5) {
            console.log(val1, val2); //7,5
            console.log(arguments[0], arguments[1], arguments.length); //7,undefined,1
            val1 = 10;
            val2 = 20;
            console.log(val1, val2); //10,20
            console.log(arguments[0], arguments[1], arguments.length); //7,undefined,1
        }
        a(7);

总结

原文:https://www.cnblogs.com/Syinho/p/13231577.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!