大家都知道JavaScript中有基本类型值和引用类型值,下面我将分享这两个类型在变量的交互中的应用。实践过的,出过问题的哦~~~~

1.赋值变量的值:

【1】基本类型值

var num = 5;

var num1 = num;

实际的工作方式是:将num复制一个副本5,然后赋给num1,虽然相等,但是两个变量的值完全独立。

验证:

alert(num1);//5

alert(num+5);//10

【2】引用类型

当一个变量向另一个变量赋值引用类型时,同样也会是复制一个副本给另一个变量,但这里是复制的是指针,而这个指针指向的是堆栈中的一个对象。

如果其中一个变量发生改变,另一个也会发生改变。请看:

var obj1 = new Object();

var obj2 = obj1;

obj1.name="XXX";

alert(obj2.name);//"XXX"

2.参数传递

【1】基本类型值按值传递,这个好说。

如果变量向函数的参数传值时,被传递的值会复制给参数(ECMAScipt的arguments元素),

function addNum(num){

  num = num+10;

  return num;

}

var num = 10;

var result = addNum(num);

alert(num);//10没有变化

alert(result);//20

【2】引用类型还是按值传递!!!!!

function setName(obj){

  obj.name="XXX";

}

var man=new Object();

setName(obj);

alert(man.name);//"XXX"

到此千万不要以为是引用传递,如果这么认为的话,那你还得看下面的代码:

function setName(obj){

  obj.name="XXX";

  obj = new Object();

  obj.name="wrong";

}

var man=new Object();

setName(man);

alert(man.name);//还是"XXX"

上面的例子证实了,如果是按照引用传值的话,结果应该是“wrong”。

而实际上在函数内部重新声明一个obj只是一个局部对象,当函数执行完的时候就会销毁。

 

  由于本人水平有限,不能举出一些高端的例子望见谅

  如果您觉得有不对,或不全,求更正求补充。

转载于:https://www.cnblogs.com/FromSnatch/archive/2012/05/13/2497888.html

剖析JavaScript传值相关推荐

  1. 转 JavaScript传值及.Net传值方式总结

    一,JavaScript传值,主要用到opener.document-- 例如:Trans_aa.htm,Trans_bb.htm <html> <head> <scri ...

  2. 【深入剖析JavaScript中的对象】

    深入剖析JavaScript中的对象

  3. javascript传值和页面跳转传值(ASP.NET页面传参的三种方法)

    我在csdn上提的问题是        我现在希望从asp.net网页弹出对话框,弹出一些错误信息.警告.提示信息之类的东西,目前准备用javascript实现,所以我希望在调这个对话框的时候,动态传 ...

  4. php异步轮询如何实现,深入剖析JavaScript异步之事件轮询

    本篇文章给大家带来的内容是关于深入剖析JavsScript异步之事件轮询,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. JavsScript 是一门单线程的编程语言,这就意味着一个时 ...

  5. javascript 传值给前端(ios 安卓)

    <script type="text/javascript">     var app = navigator.userAgent;     var isIOS = a ...

  6. 前端开发技术-剖析JavaScript单线程

    JavaScript单线程和多线程是很多小白同学入门的时候问到最多的问题,虽然官方给出过解释但对于新手来说并不友好,今天小千就来给大家介绍一下JavaScript的单线程. 一. 浏览器的进程和线程 ...

  7. java中typeof_深入剖析JavaScript中的数据类型判断(typeof instanceof prototype.constructor)...

    关于JavaScript中的类型判断,我想大部分JavaScripter 都很清楚 typeof 和  instanceof,却很少有人知道 constructor,以及constructor与前面二 ...

  8. JavaScript 深度剖析 - JavaScript 性能优化

    文章目录 一.性能优化介绍 二.JavaScript 内存管理(Memory Management) 2.1 内存管理介绍 2.2 JavaScript 中的内存管理 三.JavaScript 中的垃 ...

  9. 剖析javascript中构造函数

    在绝大多数的编程语言中,均存在函数这一概念,其含义大概可以归纳为:包含一定语句,用于完成某些有意义的工作,如处理文本.控制输入输出或计算数值等.通过在程序代码中引入函数名称和所需的参数,可在该程序中执 ...

最新文章

  1. R创建分类变量(categorical variable)
  2. 不只是让利百亿,天猫618揭示了哪些新零售趋势?
  3. 基台和种植体如何连接_成年人门牙因某些原因导致缺失该怎么办?如何修复缺失的门牙?...
  4. 2023届IC实习小结
  5. Google 推出免费利器,让编程小白也能开发游戏
  6. oracle查看表中记录数,Oracle 查询某一用户下所有表的记录数
  7. 读书笔记《高性能网站建设指南:前端工程师技能精髓》
  8. 查询数据总数_Web | Django 与数据库交互,你需要知道的 9 个技巧
  9. c语言100道经典编程题,100道经典C语言编程题
  10. DevCon 5 2019 活动照片
  11. 【转载】非常实用的chrome插件 IT人必备
  12. 一种追求高度融合,包容软硬方案的云主机集群,云OS和云APP的架构全设计
  13. PRCV2021 第四届中国模式识别与计算机视觉大会开放注册
  14. 什么是自媒体、自媒体平台???
  15. 怎么用matlab画误差椭圆,基于MATLAB的导线网平差软件设计及误差椭圆的绘制.docx...
  16. 纯电动汽车快慢充原理介绍
  17. LocalDateTime查找最近的五分钟点
  18. 你不知道的前端图片处理(万字长文,建议收藏)
  19. python守护进程进程池_Python—守护进程管理工具(Supervisor)
  20. MySql数据库之视图(定义视图、查询视图、更新视图、视图的作用)

热门文章

  1. Struts2标签库常用标签
  2. 【入门2】分支结构 (今天刷洛谷了嘛)
  3. Android编译系统简要介绍和学习计划
  4. ie系列浏览器_2020下半年河北教师资格准考证打印只能用ie浏览器吗
  5. 编辑php程序推荐的软件,PHP程序员都爱用的开发工具推荐
  6. vs 正则表达式转大写_liunx之通配符amp;正则表达式
  7. 删除logs mysql_关于删除MySQL Logs的一点记录
  8. 原版98启动盘镜像.img_装机技巧系列(二):系统安装之Windows 10启动盘制作
  9. 【script】python 解析 Windows日志(python-evtx)
  10. 服务器版Windows7系统,windows7服务器版本