JS: 参数传递(值传递和引用传递)
一、了解数据类型
1.基本数据类型:string、number、boolean、null、undefined
2.引用数据类型:funcition、array、object . . . .
3.值传递和引用传递:值传递针对基本数据类型,引用传递针对引用数据类型,传递可以理解为复制变量值。
二、值传递
1.很好理解,因为是按值传递的,传递完后俩个变量各不相干!
<script>var a = 10;function add(num) {num += 100;return num;}var ret = add(a);//值传递 num=aconsole.log(a);//10 无变化console.log(ret);//110</script>
传参(形参=实参)/ 赋值
- 互不影响
三、引用传递
1.地址传递、两个变量共享堆地址、相互影响
<script>var obj = {name: 'Jack'}var obj2 = obj;obj2.name = 'Rose';console.log(obj.name) ;// Roseconsole.log(obj2.name) ;// Rose</script>
因为复杂数据类型,变量存储的是地址,真实内容在 堆空间 内存储
所以赋值的时候相当于把 obj 存储的那个地址复制了一份给到了 obj2 变量
现在 obj 和 obj2 两个变量存储的地址一样,指向一个内存空间
所以使用 obj2 这个变量修改空间内的内容,obj 指向的空间也会跟着改变了
2.当创建obj对象 obj = new Object(); 时,来看看这时obj和obj2的关系图:
<script>var obj = new Object();var obj2 = obj; // 赋值obj2.name = "Jack";obj2 = new Object();//创建new Objectobj2.name = "Rose";console.log(obj.name);// Jack 并没有影响pobj的指向</script>
JS: 参数传递(值传递和引用传递)相关推荐
- python参数传递方法_深入理解python中函数传递参数是值传递还是引用传递
python 的 深入理解python中函数传递参数是值传递还是引用传递 目前网络上大部分博客的结论都是这样的: Python不允许程序员选择采用传值还是传 引用.Python参数传递采用的肯定是&q ...
- Java中,String类型和包装类型作为参数传递时,是属于值传递还是引用传递呢?...
<Java中,String类型和包装类型作为参数传递时,是属于值传递还是引用传递呢?> <Java中的值传递和引用传递> 原理知识: 如果参数类型是原始类型,那么传过来的就是这 ...
- java面试题:当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
java面试题:当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 答:是值传递.Java编程语言只有值传递参数. 当一个对象实 ...
- 【Java】探究Java方法的参数传递是值传递还是引用传递
测试思路 每个更改形参的方法,返回值都是void,不同方法的参数设置不同类型. 注意在方法内测地址的时候在改之前测一下,才能看出传入参数是不是传了地址.(注意反正OS的内存地址是虚拟的,JVM中的也是 ...
- Java中的参数传递,到底是值传递还是引用传递?
文章内容为转载,转载自公众号Hollis关于我要彻底给你讲清楚,Java就是值传递,不接受争辩的那种! 原文链接:我要彻底给你讲清楚,Java就是值传递,不接受争辩的那种! 知乎回答链接:Java 到 ...
- 当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递
问:当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? (下面内存图解:栈内存是先进后出的,画错了 ) 答:是值传递.Java ...
- Python学习:Python中参数传递,是值传递,引用传递or其它
本博客主要学习python参数传递机制,了解python的参数是如何传递的.学过其它语言如(C,C++),都知道参数传递有值传递和引用传递,python的参数传递属于哪种? 一.值传递和引用传递 值传 ...
- Java参数传递(值传递还是引用传递)
文章目录 基本类型和引用类型的区别 下面我们再来看看==的作用 值传递和引用传递的区别 基本类型作为参数传递 对象作为参数传递 关于String 参考资料 基本类型和引用类型的区别 int num = ...
- JS函数传参时:值传递与引用传递的区别
JS函数传参时:值传递与引用传递的区别 一.先分析基础数据与复杂数据的区别 : 基本数据类型:Undefined.Null.Boolean.Number.String 引用数据类型:对象 如:var ...
最新文章
- 缓存在哪里_APP下载的视频都在哪?教你将缓存视频拿出来
- spark on yarn :state: ACCEPTED一直 出现
- 【C语言】switch中无break的情况
- 返回一个整数数组中最大子数组的和。
- Python中Numpy数组的归一化处理
- Cordova的安装及环境配置
- 【bzoj1022】[SHOI2008]小约翰的游戏John 博弈论
- Flink查询关联Hbase输出
- android qq群加群代码,QQ群一键强制加群API源代码
- LinuxCNC Stepconf设置教程
- 【渝粤题库】广东开放大学 财务会计(1) 形成性考核
- 上帝视角-我是一个线程『转』
- 国家级非遗传承人高清旺《四大美人》皮影数字藏品惊艳亮相!
- 【图像原理】rgb数字图片概念
- JS生成唯一id方式介绍(UUID和NanoID)
- 弧焊机器人断弧_qlh 2焊接机断弧如何修理
- python编制剪刀石头布游戏_Python编辑剪刀石头布游戏
- Apsara Clouder基础技能认证:实现调用API接口
- Navicat使用教程:所有实例的运行状况和性能概述
- raid0 raid1 raid5 raid6 raid10的优缺点