JS之数据_变量_内存v(**V**)v(2)

 1  <script >
 2     //*Q:var a=xxx, a内存中到底保存的是什么?
 3     //*A:xxx是基本数据类型,保存的是这个数据
 4     //    xxx是对象,保存的是对象的地址值
 5     //    xxx是一个变量,保存的是xxx的内容(可能是基本数据类型,也可能是地址值)
 6
 7     var a=3//基本数据类型
 8     a=function () {//对象
 9
10     }
11     var a=3//变量
12     b=a//这里传的是基本数据类型
13     b={}
14     a=b//这里传的是地址值
15
16     //关于引用变量赋值的问题
17     //2个引用变量指向同一个对象,通过一个变量修改对象内部的数据,另一个变量看到的是修改之后的数据
18     //2个引用变量指向同一个对象,让其中一个引用变量指向另一个对象,另一个引用对象依然指向前一个对象
19     var obj1={name:‘Tom‘}
20     var obj2=obj1//注意这是将obj1中的内容赋值给obj2,这里只是内容是地址值
21     obj1.name=‘Jack‘
22     console.log(obj2.name)//‘Jack‘
23     obj2.agej=12
24     function fn (obj) {//形参
25       obj.name=‘Bob‘//这里修改了对象内部的值
26     }
27     fn.name(obj1)//实参
28     console.log(obj2.name)//Bob
29     /*
30     这里有三个引用变量指向对象(obj1,obj2,obj)
31     */
32
33
34     var a={age:12}
35     b=a
36     a={name:‘Tom‘}
37     console.log(b.age,)//这里面只有age属性
38     a={name:‘Tom‘,age:13}
39     console.log(b.age,a.name,a.age)//12 Tom 13
40     b.age=14
41     console.log(b.age,a.name,a.age)//14 Tom 13
42     //2个引用变量指向同一个对象,让其中一个引用变量指向另一个对象,另一个引用对象依然指向前一个对象
43     function fn2 (obj) {//这个obj指向13
44       obj={age:15}//注意这里是等于是个新的对象,在这里断了obj=15,这里成为垃圾对象,这里修改了obj中的地址值
45     }
46     fn2(a)
47     console.log(a.age)//13
48
49   </script>

原文地址:https://www.cnblogs.com/junxiaobai/p/10332275.html

时间: 2024-11-02 21:20:06

JS之数据_变量_内存v(**V**)v(2)的相关文章

JS之数据_变量_内存v(**V**)v

1 <script > 2 //*Q:什么是数据? 3 //*A:存储在内存中代表特定信息的'东东',数据的特点:可传递,可运算,一切皆数据 4 //*Q:什么是内存? 5 //*A:内存条通电以后产生的可存储数据的空间(临时的) 6 //*Q:什么是变量? 7 //*A:可变化的量,由变量名和变量值组成 8 //* 每个变量对应一块小内存,变量用来查找对应的变量值存储的内存,变量值就是内存中保存的数据 9 //*Q:内存,数据和变量三者之间的关系? 10 //*A:内存用来存储数据的空间,

数据_变量_内存

<!-- 1. 什么是数据? * 存储于内存中代表特定信息的'东东', 本质就是0101二进制 * 具有可读和可传递的基本特性 * 万物(一切)皆数据, 函数也是数据 * 程序中所有操作的目标: 数据 * 算术运算 * 逻辑运算 * 赋值 * 调用函数传参 ... 2. 什么是内存? * 内存条通电后产生的存储空间(临时的) * 产生和死亡: 内存条(集成电路板)==>通电==>产生一定容量的存储空间==>存储各种数据==>断电==>内存全部消失 * 内存的空间是临时的

javascript数据类型(二)--- 数据、变量与内存

一.基本概念 1.1 什么是数据? 存储在内存中代表特定信息的'东东', 本质上是0101... 数据的特点: 可传递, 可运算 一切皆数据 内存中所有操作的目标: 数据 算术运算 逻辑运算 赋值 运行函数 1.2 什么是内存? 内存条通电后产生的可储存数据的空间(临时的) 内存产生和死亡: 内存条(电路版)==>通电==>产生内存空间==>存储数据==>处理数据==>断电==>内存空间和数据都消失 一块小内存的2个数据 内部存储的数据(对象类型变量保存的值是对象的地址

JS之数据_变量_内存v(**V**)v(3)

1 <script > 2 //*Q:在JS调用函数传递的参数时,到底是值传递还是引用传递 3 //*A:理解一:都是值(基本/地址值)传递 4 // 理解二:可能是值传递,也可能是引用传递(地址值) 5 //*Q:JS引擎如何管理内存? 6 //*A:分配一块小内存,得到他的使用权 7 // 存储数据,可以反复进行操作 8 // 释放小内存空间 9 //小知识点:释放内存 10 // 局部变量:函数执行完自动释放 11 // 对象:成为垃圾对象==>垃圾回收器回收 12 var a=3

20181106_线程之异常_取消_变量_安全Lock

一. 线程的异常处理: try { TaskFactory taskFactory = new TaskFactory(); List<Task> taskList = new List<Task>(); //线程里面的异常是被吞掉了,因为已经脱离try catch的范围了 如果真想让线程之外的Catch抓到异常, 那么只有使用 WaitAll 抓到多线程里面全部的异常 //实际开发: 线程里面的action不允许出现异常,自己使用try catch处理好 for (int i =

js 如何动态添加数组_百度知道

1.数组的创建var arrayObj = new Array(); //创建一个数组var arrayObj = new Array([size]); //创建一个数组并指定长度,注意不是上限,是长度var arrayObj = new Array([element0[, element1[, ...[, elementN]]]]); 创建一个数组并赋值 要说明的是,虽然第二种方法创建数组指定了长度,但实际上所有情况下数组都是变长的,也就是说即使指定了长度为5,仍然可以将元素存储在规定长度以外

python基础_变量进阶

变量进阶(理解) 目标 变量的引用 可变和不可变类型 局部变量和全局变量 01. 变量的引用 变量 和 数据 都是保存在 内存 中的 在 Python 中 函数 的 参数传递 以及 返回值 都是靠 引用 传递的 1.1 引用的概念 在 Python 中 变量 和 数据 是分开存储的 数据 保存在内存中的一个位置 变量 中保存着数据在内存中的地址 变量 中 记录数据的地址,就叫做 引用 使用 id() 函数可以查看变量中保存数据所在的 内存地址 注意:如果变量已经被定义,当给一个变量赋值的时候,本

Hadoop! | 大数据百科 | 数据观 | 中国大数据产业观察_大数据门户

你正在使用过时的浏览器,Amaze UI 暂不支持. 请 升级浏览器 以获得更好的体验! 深度好文丨读完此文,就知道Hadoop了! 来源:BiThink 时间:2016-04-12 15:14:39 作者:陈飚 “昔我十年前,与君始相识.” 一瞬间Hadoop也到了要初中择校的年龄了. 十年前还没有Hadoop,几年前国内IT圈里还不知道什么是Hadoop,而现在几乎所有大型企业的IT系统中有已经有了Hadoop的集群在运行了各式各样的任务. 2006年项目成立的一开始,“Hadoop”这个单

makefile(02)_变量

4.变量与赋值 4.1.变量 Makefile中支持程序设计语言中变量的概率,但没有变量类型,只代表文本数据:变量命名规则:变量可以包含字符.数字.下划线,单不能包含":","#", "="," ",变量名大小写敏感.变量的定义和使用: 4.2.赋值 Makefile中有4中变量赋值方式: 4.2.1.简单赋值(:=) 程序设计语言中的通用赋值方式,只针对当前语句有效,等价于C语言中的赋值.建议无特殊要求时使用简单赋值. x