JS基礎_基本數據類型和引用數據類型
阿新 • • 發佈:2017-10-17
bsp ole scrip ++ cnblogs false true 不同 con
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta charset="UTF-8">
5 <title></title>
6 <script type="text/javascript">
7
8 /*
9 * 基本數據類型
10 * String Number Boolean Null Undefined
11 *
12 * 引用數據類型
13 * Object
14 *
15 * JS中的變量都是保存到棧內存中的,
16 * 基本數據類型的值直接在棧內存中存儲,
17 * 值與值之間是獨立存在,修改一個變量不會影響其他的變量
18 *
19 * 對象是保存到堆內存中的,每創建一個新的對象,就會在堆內存中開辟出一個新的空間,
20 * 而變量保存的是對象的內存地址(對象的引用),如果兩個變量保存的是同一個對象引用,
21 * 當一個通過一個變量修改屬性時,另一個也會受到影響
22 *
23 */
24
25 //------------------------------------------------------------------------------------------
26
27 var a = 123;
28 var b = a;
29 a++;
30
31 console.log(a);//124
32 console.log(b);//123
33
34 //--------------------------------------------------
35
36 var obj = new Object();
37 obj.name = "孫悟空";
38 var obj2 = obj;
39
40 //修改obj的name屬性
41 obj.name = "豬八戒";
42
43 console.log(obj.name);//豬八戒
44 console.log(obj2.name);//豬八戒
45
46 //--------------------------------------------------
47
48 //設置obj2為null
49 obj2 = null;
50
51
52 console.log(obj);//[object Object]
53 console.log(obj2);//null
54
55 obj = null;
56 console.log(obj);//null
57
58 //--------------------------------------------------
59
60 var c = 10;
61 var d = 10;
62 console.log(c == d);//true
63
64 var obj3 = new Object();
65 var obj4 = new Object();
66 obj3.name = "沙和尚";
67 obj4.name = "沙和尚";
68
69 console.log(obj3);//[object Object]
70 console.log(JSON.stringify(obj3));//{"name":"沙和尚"}
71
72 console.log(obj4);//[object Object]
73 console.log(JSON.stringify(obj4));//{"name":"沙和尚"}
74
75
76 /*
77 * 當比較兩個基本數據類型的值時,就是比較值。
78 * 而比較兩個引用數據類型時,它是比較的對象的內存地址,
79 * 如果兩個對象是一摸一樣的,但是地址不同,它也會返回false
80 */
81 console.log(obj3 == obj4);//false
82
83 var obj5 = obj3;
84 console.log(obj3 == obj5);//true
85
86
87 </script>
88 </head>
89 <body>
90 </body>
91 </html>
JS基礎_基本數據類型和引用數據類型