js函数形参与arguments的关系

 function course(name,age){
            console.log(age);   //undefined      此时age并无实参,所以为undefined
            console.log(arguments[1]);  //undefined    arguments指示的age,因为下标是以0开始的
            arguments[1] = 2;
            console.log(age);  //underfined
            console.log(arguments[1]);   //2
        }
        course(‘麋斯‘);

分析 :

  形参的的空间与arguments对象的内存空间并不重叠。

  如果形参和arguments都存在,则两者的值是同步的;

  如果形参和arguments当中,有其中之一无值,则此值不会得到同步.

关于arguments对象 :

  作用 :

    检测参数个数  ---  引用属性  arguments.length 即可

    模拟函数重载  --- 一个单独的功能实现多项任务,严格模式下,不能工作

       JavaScript中不存在重载,只能说是 模拟重载

因此我们来模拟重载 :
    

  

function sum(a,b){
            switch(arguments.length){
                case 2:
                    return arguments[0]+arguments[1];break;
                case 3:
                    return arguments[0]+arguments[1]+arguments[2];break;
                case 4:
                    return arguments[0]+arguments[1]+arguments[2]+arguments[3];break;
                default:
                    return 0;
            }
        }
        console.log(sum(1,2)); //3
        console.log(sum(1,2,3)); //6
        console.log(sum(1,2,3,4)); //10

    

原文地址:https://www.cnblogs.com/asd7850254/p/12272775.html

时间: 2024-10-01 21:44:57

js函数形参与arguments的关系的相关文章

JS 函数中的arguments,call,apply

JS 函数定义的时候的参数和调用时的关系调用时实际传递的参数可以比定义的参数多或者少,见下面的两个例子 <script> function test(a,b,c){ console.log(a); } test('a'); test('a','b','c'); </script> <script> function test(a){ console.log(a); } test('a'); test('a','b','c'); </script> JS的方法

js 函数实参列表arguments和形参的那点事儿

//如果实参和形参数量相等,那么形参和argments之间有种映射关系,形参变量值改变对应位置的arguments[i]也随之改变,反之亦然. function test(a,b){ b = 3; console.log(arguments[1]); //3 arguments[1] = 4; console.log(b); //4 } test(1,2); //如果实参比形参少,那么多余的形参和argments之间就没有了映射关系,即多余形参值得改变,对应位置的arguments[i]的值仍为

JS函数与BOM

[函数的声明及调用]1.函数声明的格式:function 函数名(参数1,参数2,....){//函数体return结果;}函数名(参数1的值,参数2的值,....) >>>函数的调用格式直接调用:函数名(参数1的值,参数2的值,....)事件调用:事件名="函数名()"; 2.函数声明的几点强调: ①函数名的声明,必须符合小驼峰法则(首字母小写,之后每个单词字母大写) ②参数列表,可以有参数,也可以无参数.分别称为有参函数和无参函数. ③声明函数时的参数列表,称为&

JS函数入门

一. 函数的声明及调用 * 1函数的格式:function 函数名(参数1,参数2......){ * //函数体 * return 结果: * * } * 函数调用的格式: * 直接调用:函数名(参数1的值,参数2的值......): * 事件调用:事件名="函数名()"; * 2,函数声明的几点强调: * ①函数名的声明,必须符合小驼峰法则(首字母小写,之后每个单词首字母大写): * ②参数列表,可以有参数也可以没有参数,分别称为有参函数,无参函数: * ③声明函数时的参数列表,称

js函数的内部属性---arguments,callee,caller

在接下来的几篇文章中,我大家谈谈函数的内部属性,arguments,callee,caller (1)arguments,是一个类数组对象,其中包含了传入函数的所有参数,主要用途是,保存函数的参数: 代码1: function aa(b){alert(arguments);} aa(4); function aa(a,b,c,d){alert(arguments.length);} aa(1,2,3,4); function aa(a,b,c,d){alert(arguments[2]);} a

JS函数的参数对象arguments在严格模式下的限制

在JS中,传入的函数的参数个数可以与定义函数的个数不一致,那么对于传入的实参的引用,则是arguments对象.然而改对象在严格模式和非严格模式下是由区分的: 1 在严格模式下arguments作为了一个保留字,那么如果在定义arguments相关的变量和函数,则会报语法错误. 2 arguments在严格模式下属于传入的实参对象,并且是不可变的,即不可在函数内部通过arguments来修改实参值. 如: function test1(a){ “use strict”; arguments[0]

js函数的两种定义形式,函数的实参列表arguments/形参列表函数名

1.声明式函数:function test(){}; 2.表达式函数:var test=function(){} 例:function test(a,b){} test(2,3,4) ->函数的形参和实参是可变的 函数内参数参数列表: 1.实参列表:在函数内用arguments表示,如上例:arguments=[2,3,4] 2.在函数内test.length表示形参列表长度 原文地址:https://www.cnblogs.com/fangming/p/8847650.html

js函数的使用

  js函数应用 [函数的声明及调用]: 1.函数声明: function 函数名(参数1,参数2,·····){ //函数体 return 结果: >>函数调用的格式: 函数名(参数1的值,参数2的值,·····) 事件调用 } 2.函数声明的几点强调: ①.函数名的声明,必须符合驼峰法则(首字母小写,之后的每个单词首字母大写): ②.参数列表,可以有参可以无参,分别为有参函数,无参函数: ③.声明函数时的参数列表叫形参列表(变量的名):调用函数是的参数列表叫实参列表(变量的值): 函数中实

js面形对象(2)

1.?原型与in操作符     有两种方式使用in操作符:单独使用和在for-in循环中使用.在单独使用时,in操作符会在通过对象能够访问给定属性时,返回true,无论该属性是存在实例或者是存在于原型之中. 看看下面的代码: console.debug(p1.hasOwnProperty('name'));//false 实例中没有name属性 console.debug('name' in p1);//输出true 实例或者原型中有name属性 p1.name = 'Lebron'; cons