栈内存&&堆内存
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> </head> <body> <script> // 基本数据类型 //String Number Boolean Null Undefined //引用数据类型 //Object // js中的变量都是保存到栈内存中的 // 变量在栈内存中存储 // 值与值之间是独立存在的 修改一个变量的值不会影响其他的变量 // 对象在堆内存中存储 // 画图显示 var a = 123 var b = a a++ console.log('a = ' + a) //124 console.log('b = ' + b) //123 var obj = new Object() //obj作为一个变量保存在栈内存中 它的值是一个地址类似0x123 //对象在堆内存中存储的是一个0x123地址 //现在往对象中添加属性 obj.name = '陈恩伊' var obj2 = obj // 修改了name属性 obj.name = '仙女本仙' //obj和obj2这两个变量保存的是同一个对象的地址类似0x123 console.log(obj.name) //仙女本仙' console.log(obj2.name) //仙女本仙' // ===================================== // 比较变量的栈内存存储 && 对象的堆内存存储 var a = 10 var b = 10 console.log(a == b) //true //对象字面量的形式创建了一个对象 var a = {} a.name = '陈恩伊' console.log(a) var b = {} b.name = '陈恩伊' console.log(b) console.log(a == b) //false 由于堆内存中的地址不一样所以是false </script> </body> </html>