一、了解数据类型

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: 参数传递(值传递和引用传递)相关推荐

  1. python参数传递方法_深入理解python中函数传递参数是值传递还是引用传递

    python 的 深入理解python中函数传递参数是值传递还是引用传递 目前网络上大部分博客的结论都是这样的: Python不允许程序员选择采用传值还是传 引用.Python参数传递采用的肯定是&q ...

  2. Java中,String类型和包装类型作为参数传递时,是属于值传递还是引用传递呢?...

    <Java中,String类型和包装类型作为参数传递时,是属于值传递还是引用传递呢?> <Java中的值传递和引用传递> 原理知识: 如果参数类型是原始类型,那么传过来的就是这 ...

  3. java面试题:当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?

    java面试题:当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 答:是值传递.Java编程语言只有值传递参数. 当一个对象实 ...

  4. 【Java】探究Java方法的参数传递是值传递还是引用传递

    测试思路 每个更改形参的方法,返回值都是void,不同方法的参数设置不同类型. 注意在方法内测地址的时候在改之前测一下,才能看出传入参数是不是传了地址.(注意反正OS的内存地址是虚拟的,JVM中的也是 ...

  5. Java中的参数传递,到底是值传递还是引用传递?

    文章内容为转载,转载自公众号Hollis关于我要彻底给你讲清楚,Java就是值传递,不接受争辩的那种! 原文链接:我要彻底给你讲清楚,Java就是值传递,不接受争辩的那种! 知乎回答链接:Java 到 ...

  6. 当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递

    问:当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?  (下面内存图解:栈内存是先进后出的,画错了 ) 答:是值传递.Java ...

  7. Python学习:Python中参数传递,是值传递,引用传递or其它

    本博客主要学习python参数传递机制,了解python的参数是如何传递的.学过其它语言如(C,C++),都知道参数传递有值传递和引用传递,python的参数传递属于哪种? 一.值传递和引用传递 值传 ...

  8. Java参数传递(值传递还是引用传递)

    文章目录 基本类型和引用类型的区别 下面我们再来看看==的作用 值传递和引用传递的区别 基本类型作为参数传递 对象作为参数传递 关于String 参考资料 基本类型和引用类型的区别 int num = ...

  9. JS函数传参时:值传递与引用传递的区别

    JS函数传参时:值传递与引用传递的区别 一.先分析基础数据与复杂数据的区别 : 基本数据类型:Undefined.Null.Boolean.Number.String 引用数据类型:对象 如:var ...

最新文章

  1. 缓存在哪里_APP下载的视频都在哪?教你将缓存视频拿出来
  2. spark on yarn :state: ACCEPTED一直 出现
  3. 【C语言】switch中无break的情况
  4. 返回一个整数数组中最大子数组的和。
  5. Python中Numpy数组的归一化处理
  6. Cordova的安装及环境配置
  7. 【bzoj1022】[SHOI2008]小约翰的游戏John 博弈论
  8. Flink查询关联Hbase输出
  9. android qq群加群代码,QQ群一键强制加群API源代码
  10. LinuxCNC Stepconf设置教程
  11. 【渝粤题库】广东开放大学 财务会计(1) 形成性考核
  12. 上帝视角-我是一个线程『转』
  13. 国家级非遗传承人高清旺《四大美人》皮影数字藏品惊艳亮相!
  14. 【图像原理】rgb数字图片概念
  15. JS生成唯一id方式介绍(UUID和NanoID)
  16. 弧焊机器人断弧_qlh 2焊接机断弧如何修理
  17. python编制剪刀石头布游戏_Python编辑剪刀石头布游戏
  18. Apsara Clouder基础技能认证:实现调用API接口
  19. Navicat使用教程:所有实例的运行状况和性能概述
  20. raid0 raid1 raid5 raid6 raid10的优缺点

热门文章

  1. I. chino with mates
  2. Appium 从入门到实践
  3. 抖音近期比较火的挤地铁教程+源码
  4. 降噪软件让NVH诊断更轻松
  5. 入门编程指南:如何从零开始学习编程?
  6. 杰理下载器强制下载工具的使用介绍_AC695N696NAD14AD15全系列支持,看完此文就足够了
  7. __declspec(naked)是用来告诉编译器函数代码的汇编语言为自己的所写,不需要编译器添加任何汇编代码
  8. java 解析cad文件数据开源免费jar整理
  9. ajax重要且常用参数
  10. OpenWrt配置打印服务器无线桥接,手机无线打印