1. 程式人生 > >JS基礎_基本數據類型和引用數據類型

JS基礎_基本數據類型和引用數據類型

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基礎_基本數據類型和引用數據類型