首页 > 其他分享 >在函数内部修改形参时,不会对实参产生影响

在函数内部修改形参时,不会对实参产生影响

时间:2023-11-10 23:57:10浏览次数:29  
标签:10 console 函数 log test 形参时 实参 name

执行以下代码,输出结果为()

function test(a){
    a=a+10;
}
var a=10;
test(a);
console.log(a);

10

变量a为number类型,属于基本数据类型,基本数据类型在传参时,通过拷贝值进行传递。

因此,在函数内部修改形参时,不会对实参产生影响,故输出a的值为10

a是形参,属于局部变量,不影响全局变量a的值,因此输出的a是全局变量的值10

  1. 当传入参数的为基本类型(number, string, boolean)时,传入实际值

  2. 当传入参数为引用类型时, 传入内存地址,对形参的修改,相当于对原值的修改

例子:

function test(a, b){
a=a+10;
b.name = 'xiaohong'
}
var a=10;
var b = {'name': 'xiaoming'}
console.log(b.name) // 'xiaoming'
test(a, b);
console.log(a); // 10
console.log(b.name) // 'xiaohong'

标签:10,console,函数,log,test,形参时,实参,name
From: https://www.cnblogs.com/longmo666/p/17825368.html

相关文章

  • new是以Date为构造函数产生对象的,Date()是直接调用了构造函数。控制台在输出日期对象
    Date()//输出:(字符串)'WedSep21202216:53:16GMT+0800(中国标准时间)'newDate()//输出:WedSep21202216:53:23GMT+0800(中国标准时间)new是以Date为构造函数产生对象的,Date()是直接调用了构造函数。控制台在输出日期对象时调用了tostring......
  • 无涯教程-批处理 - Deleting from the Registry函数
    通过REGDEL命令从注册表中删除,请注意,为了从注册表中删除值,您需要在系统上具有足够的特权才能执行此操作。REGDELETE命令具有以下变体,在第二个版本中,将删除默认值,而在最后一个版本中,将删除指定键下的所有值。REGDELETE[ROOT\]RegKey/vValueName[/f]REGDELETE[ROOT......
  • 无涯教程-批处理 - Adding to the Registry函数
    通过REGADD命令完成添加到注册表,请注意,为了向注册表添加值,您需要在系统上具有足够的特权才能执行此操作。REGADD命令具有以下变体,在第二个变体中,没有为密钥指定名称,它将为密钥添加名称"(默认)"。REGADD[ROOT\]RegKey/vValueName[/tDataType][/SSeparator][/dData]......
  • 无涯教程-批处理 - Deleting Folders函数
    对于删除文件夹,批处理脚本提供了DEL命令。DEL[/P][/F][/S][/Q][/A[[:]attributes]]names以下是可以提供给DEL命令的选项的说明。S.No.Options&描述1.Names指定一个或多个文件或目录的列表,通配符可用于删除多个文件,如果指定了目录,则目录中的所有文件将被删除。2......
  • 无涯教程-批处理 - Listing Folder Contents函数
    列出文件夹内容可以使用dir命令完成,此命令使您可以查看当前目录中的可用文件和目录,dir命令还显示上次修改的日期和时间,以及文件大小DIR[drive:][path][filename][/A[[:]attributes]][/B][/C][/D][/L][/N][/O[[:]sortorder]][/P][/Q][/R][/S][/T[[:]timefield]][......
  • C++的纯虚函数和抽象类
    在C++中,可以将虚函数声明为纯虚函数,语法格式为:virtual返回值类型函数名(函数参数)=0;纯虚函数没有函数体,只有函数声明,在虚函数声明的结尾加上=0,表明此函数为纯虚函数。最后的=0并不表示函数返回值为0,它只起形式上的作用,告诉编译系统“这是纯虚函数”。包含纯虚函数的类称为抽......
  • C++中虚继承时的构造函数
    在虚继承中,虚基类是由最终的派生类初始化的,换句话说,最终派生类的构造函数必须要调用虚基类的构造函数。对最终的派生类来说,虚基类是间接基类,而不是直接基类。这跟普通继承不同,在普通继承中,派生类构造函数中只能调用直接基类的构造函数,不能调用间接基类的。下面我们以菱形继承为例来......
  • 函数
    for循环for(变量起始值;终止条件;变量变化量){}//循环输出1-100for(leti=1;i<=3;i++){console.log('月薪过哇')}//求出偶数的和/*letsum=0for(letj=1;j<101;j++){console.lo......
  • 关于Lambda表达式(箭头函数)的get属性访问器和常规的get属性访问器的差异
    如下代码示例所示d1d2相等,d3d4不等,因为赋值形式的访问器只是new一个实例后赋值,而lambda形式(箭头函数),则是把箭头右侧是当方法体来执行,即每次都new一个新的实例classDog{publicDog(){this.Name=Guid.NewGuid().ToString("N");......
  • 【chatgpt问答记录】双端队列、栈和函数调用栈
    collections.deque和queue.Queue的区别Q:collections.deque()跟queue.Queue()有什么区别?collections.deque()和queue.Queue是两种不同的数据结构,它们有一些区别:实现方式:collections.deque()是Python标准库提供的双端队列数据结构,使用双向链表实现,具有高效的在两端进行......