當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
JS之数据_变量_内存v(**V**)v(2)
生活随笔
收集整理的這篇文章主要介紹了
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
總結
以上是生活随笔為你收集整理的JS之数据_变量_内存v(**V**)v(2)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux CentOS 7 防火墙/端
- 下一篇: 第六章 SpringCloud之Ribb