JavaScript进阶篇(二)——数据变量内存

1.什么是数据

存储在内存中代表特定含义的信息,本质上是010101…

2.什么是内存

可存储数据的空间(临时的)

3.什么是变量

可变化的量,由变量名和变量值组成
每个变量都对应一小块内存,变量名用来查找对应的内存,变量值就是内存中保存的变量

4.栈和堆

  • (stack):栈会自动分配内存空间,会自动释放,存放基本类型,简单的数据段,占据固定大小的空间。(基本类型:String,Number,Boolean,Null,Undefined)

  • (heap):动态分配的内存,大小不定也不会自动释放,存放引用类型,指那些可能由多个值构成的对象,保存在堆内存中,包含引用类型的变量,实际上保存的不是变量本身,而是指向该对象的指针。(引用类型:Function,Array,Object)

JS中的变量都是保存到栈内存中的

在这里插入图片描述

  • 基本数据类型的值直接保存在栈内存中
    值与值之间是相互独立的,修改一个变量不会影响其他变量值
    在这里插入图片描述

  • 引用数据类型(对象)是保存到堆内存中的,,每创建一个新对象,就会在内存中开辟一个新的空间,而变量保存的是对象的内存地址(对象的引用),如果两个变量保存的是同一个变量的引用,那么通过一个变量改变属性时,另一个变量也会收到影响
    在这里插入图片描述

基本数据类型保存的是值,引用数据类型保存的是地址

  • 当比较两个基本数据类型时,比较的就是值

  • 当比较两个引用数据类型时,比较的是对象的内存地址,如果两个对象一样,但是内存地址不同,那么会返回false

猜你喜欢

转载自blog.csdn.net/weixin_42164004/article/details/109077542