什么是形参和实参参数传递的方式有哪些?jQuery问题,对大家来说很简单,谁为我解答一下

本文目录
- 什么是形参和实参参数传递的方式有哪些
- jQuery问题,对大家来说很简单,谁为我解答一下
- 什么是JS中的arguments对象
- C语言规定,调用一个函数时,实参变量和形参变量之间的数据传递方式是什么
- C语言菜鸟问题:形参与实参的作用
- 原生js中onload事件传参问题,下面这段代码会依次弹出什么以及为什么
什么是形参和实参参数传递的方式有哪些
一、函数中使用:
形参出现在函数定义中,在整个函数体内都可以使用, 离开该函数则不能使用。
实参出现在主调函数中,进入被调函数后,实参变量也不能使用。
二、调用
形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只在函数内部有效。函数调用结束返回主调用函数后则不能再使用该形参变量。
实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参。因此应预先用赋值,输入等办法使参数获得确定值。
三、不是指针类型在内存中位置不同:
当形参和实参不是指针类型时,在该函数运行时,形参和实参是不同的变量,他们在内存中位于不同的位置,形参将实参的内容复制一份,在该函数运行结束的时候形参被释放,而实参内容不会改变。
举例:
1. 比如你定义一个函数void add(int a, int b),这里的a和b就是形参。
2. 当你进行函数调用的时候,add(1, 2),这里的1和2就是实参。
请点击输入图片描述
扩展资料
形参的作用是实现主调函数与被调函数之间的联系,通常将函数所处理的数据,影响函数功能的因素或者函数处理的结果作为形参。
没有形参的函数在形参表的位置应该写void.main 函数也可以有形参和返回值,其形参也称为命令行参数,由操作系统在启动程序时初始化,其返回值传递给操作系统。
两者关系:
在一般传值调用的机制中只能把实参传送给形参,而不能把形参的值反向地传送给实参。因此在函数调用过程中,形参值发生改变,而实参中的值不会变化。而在引用调用的机制当中是将实参引用的地址传递给了形参,所以任何发生在形参上的改变实际上也发生在实参变量上。
百度百科-形参
百度百科-实参
jQuery问题,对大家来说很简单,谁为我解答一下
这是jQuery对函数重载的体现。楼主理解函数重载的概念的话就好说了。
比如我们要写一个max函数,求若干个数的最大数。你可能看到的调用方式有:max(1,2); max(3,4,5); max(5,8,2,4,6);这就是重载的体现。
js中函数重载可以用arguments对象来实现,或者检测参数是否为undefined。每个函数内部都有arguments对象,表示函数的实参列表,其实函数的形参完全可以不写的,形参只是arguments对象里的某个参数的一个引用,实参在arguments对象里都有。
如果实参比形参少,那么多余的形参就是undefined(从左往右依次赋值引用),并不会导致函数调用出错。所以完全可以用检测参数undefined或者检测typeof的方式来实现重载。
jQuery在设计API时,充分体现了函数重载,避免了对外体现大量类似函数接口的情况出现。仔细看jQ的API手册,每个API都有详细的介绍,包括传递不同参数时的含义。
自己码字,希望能帮到楼主。
什么是JS中的arguments对象
在函数体内,标识符arguments是指向实参对象的引用,实参对象是一个类数组对象 arguments,arguments.length
arguments是什么?
答:1:arguments是收到的实参副本
在词法分析中, 首先按形参形成AO的属性,值为undefined
当实参传来时, 再修改AO的相应属性.
2:并把所有收到实参收集起来,放到一个arguments对象里
t(a,b,c){},
调用时: t(1,2,3,4,5) 5个参数
此时 , AO属性只有a,bc,3个属性, arguments里有1,2,3,4,5, 所有的值
对于超出形参个数之外的实参, 可以通过arguments来获得
3:arguments 的索引 从 0, 1,2,....递增,与实参逐个对应
4:arguments.length 属性代表实参的个数
5:arguments一定不是数组, 是长的比较像数组的一个对象,虽然也有length属性
6:arguments每个函数都会有,因此,arguemnts只会在内部找自身的arguments,
无法引用到外层的arguments
《script type="text/javascript"》
// 求圆形面积,矩形面积, 三角形面积
function area () {
if(arguments.length == 1) {
alert(3.14 * arguments);
} else if(arguments.length == 2) {
alert(arguments);
} else if(arguments.length == 3) {
alert(arguments);
} else {
return null;
}
}
area(10,20,30);
《/script》
C语言规定,调用一个函数时,实参变量和形参变量之间的数据传递方式是什么
函数只有两种传递方式:
1、值传递,又称单向传递,只能把实参数值传给形参 ,形参最后的结果不影响实参(形参改变大小 ,实参大小不变)。
2、址传递,通过指针,把实参的地址给形参,形参的大小可以影响实参。
扩展资料:
实参变量和形参变量之间的调用过程
1、函数的形参列于函数声明中,在函数定义的函数体内使用,在未出现函数调用时,形参不占内存中的存储单元。
2、将实参的值传递给形参,当函数被调用时,实参列在函数名后面的括号里,执行函数调用时,实参被传递给形参。
3、在执行函数期间,由于形参已经有值,可以利用其进行相关运算。
4、通过return语句将函数值带回到主调函数。
5、调用结束,形参单元被释放。实参单元仍保留并维持原值(值传递)。
C语言菜鸟问题:形参与实参的作用
《1》
在定义函数中指定的形参,在未出现函数调用时,它们并不占内存中的存储单元.只有在发生函数调用时,函数中形参才被分配内存单元.在调用结束后,形参所占的内存单元也被释放。
《2》
实参可以是常量、变量或表达式,如:max(3,
a+b);
但要求它们有确定的值。在调用时将实参的值赋绐形参(如果形参是数组名,则传递的是数组首地址而不是数组的值。)
《3》
在被定义的函数中,必须指定形参的类型。
《4》
实参与形参的类型应相同或赋值兼容。类型不相同时,按赋值运算时的类型转换规则进行转换。
《5》
C语言规定,实参变量对形参变量的数据传递是“值传递”,即单向传递,只由实参传绐形参,而不能由形参传回来绐实参,这是和fortran不同的。在内存中,实参单元与形参单元是不同的单元。
调用函数时,绐形参分配内存单元,并将实参对应的值传递绐形参,调用结束后,形参单元被释放,实参单元仍保留并维持原值。因此在执行一个被调用函数时,形参的值如果发生改变,并不会改变主调用函数的实参的值。
原生js中onload事件传参问题,下面这段代码会依次弹出什么以及为什么
window.onload=function(a,b){
alert(onload.length);
alert(arguments.length);
}
单纯先说这个,onload事件页面加载完,就会自动执行
onload是个函数, onload.length是函数形参的个数,你传入了 a、b所以是2
arguments是实参的参数数组,没有真正传参,但是实参会有个 ev对象,所以是 1
当你:
onload(3,4,5); 去手动调用函数的时候,
onload.length 不会变,还是2,因为说过,是形参的个数
而arugments 显然变成3,因为你实际传进去3个
总体来说,当你手动调用,肯定比页面加载完调用要先执行
所以,最终答案是: 2 3 2 1

更多文章:
kali上传文件到apache服务器(如何在macOS系统和KaliLinux系统之间共享文件)
2025年10月25日 23:30
c语言一维数组有几个数(c语言的一维数组中至少要有几个元素)
2025年11月27日 13:30
织梦岛隐藏要素(塞尔达传说织梦岛脸孔神殿迷宫怎么通关 脸孔神殿迷宫)
2025年9月18日 18:45
最新版android studio安装(如何安装android studio)
2025年9月24日 10:15
97的十六进制(97 98 换成八进制 如何换 如何将十进制转换成八进制或者十六进制 哪位大仙帮帮忙)
2026年4月5日 15:00
redis命令登录(软件Xshell连接Redis操作教程)
2026年6月6日 17:30
category nouns(the different lexical category in translation)
2026年1月9日 10:45
哈夫曼树编码不唯一那解码结果(如何解决哈夫曼树不唯一的问题)
2025年6月24日 02:45
关系数据库管理系统有哪些?(下面哪些属于关系型数据库管理系统())
2026年5月2日 12:15
insertrow(在Power Query中如何插入自定义行)
2025年10月10日 12:30
















