dede程序网站如何查看百度蜘蛛,大人怎么做羞羞的网站,wordpress 文章点击,oa平台登录系统入口前言#xff1a; 函数分为有参有返回值#xff0c;有参无返回值#xff0c;无参无返回值#xff0c;无参有返回值#xff1b;那么对于无参数的函数你想使用函数的调用怎么办呢#xff1f;如果你想封装一个代码#xff0c;实现多种功能#xff0c;但是形参大于实参或者实…前言 函数分为有参有返回值有参无返回值无参无返回值无参有返回值那么对于无参数的函数你想使用函数的调用怎么办呢如果你想封装一个代码实现多种功能但是形参大于实参或者实参大于形参又该如何本文就发生函数调用过程中值传递参数的不对等处理原则等关于参数的一些相关操作进行阐述。 1.实参数大于形参数 function say(name,message){console.log(Hello name message);}say(World!,ByeBye!,World’);//控制台打印出HelloWorld!ByeBye! 2.实参数小于形参数 function say(name,message){console.log(Hello name message);}say(World!’);//控制台打印出HelloWorld!undefined 在JS中变量定义的时候如果未给一个变量赋初值那么该变量的类型为undefiend 细心的可以发现一个规律就是在进行函数调用的时候不管实参的数目大于形参还是小于形参被调用的函数都会执行在JS中函数不介意传递进来多少个参数也不在乎传进来的参数是什么数据类型。发生函数调用的时候可以给一个实参也可以给多个实参之所以会这样是因为在js中的参数在内部是用一个数组来表示。函数接收到的始终是这个数组而不关心数组中包含哪些参数如果这个数组不包含任何参数也无所谓包含多个参数也没问题在函数体内可以通过arguments参数对象来访问这个参数数组从而获取传递给参数的每个参数。 arguments对象和数组对象相类似可以通过下标来获取传入的每一个元素第一个元素是arguments[0];也可以使用length属性来确定传递进来多少个参数。 3.通过arguments 来实现函数参数的“调用”: 对于上面的代码可以这样写 function say(name, message){console.log(Hello arguments[0] arguments[1]);console.log(arguments.length);}say(World, ByeBye’); 或者 function say(){console.log(Hello arguments[0] arguments[1]);console.log(arguments.length);}say(World, ByeBye’); 控制台打印效果都是一样的即HelloWorld!ByeBye 即在这里你可以这样理解当发生函数调用的时候实参被保存在叫做arguments的“数组”当中而arguments中对应下标的值在发生函数调用的时候始终与被调用函数的参数保持 对于这个可采用如下方法验证: function say(name, message){console.log(arguments[1] message);arguments[1] World;console.log(arguments[1] message);}say(World, ByeBye’)//控制台打印truetrue 不过并不是说读取这两个值会访问相同的内存空间他们的内存空间是独立的但他们的值会同步这种同步是单向的也就是参数的改变不会改变argumens中对应的值。 function say(name, message){console.log(arguments.length);}say(World)//控制打印1 arguments对象的长度是由传入的参数个数决定不由定义函数的参数的个数决定。 转载于:https://www.cnblogs.com/hanhanhan/p/5765920.html