栈内存&&堆内存
<!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>

京公网安备 11010502036488号