一、什么是内存
内存是用于存储数据的地方,程序要执行一行代码,要先从硬盘加载到内存当中,再由内存发送给CPU,CPU才能对代码进行执行。
当我们在js中,声明一个变量并赋值
<script>
//js中,变量中并不存储任何值,而是存储值的内存地址!
let a = '123';
let b = '123';
console.log(a);
console.log(b)
</script?
直观上,是把a和b两个变量当成盒子,分别将值‘123’存储在两个盒子中。
实际上并非如此,内存的结构比较复杂
当声明一个变量时,在内存中分配的空间是固定的。但是它所存储的值是一个随时改变的量。
如果数据过大,存储时分配的空间不足够使用,会造成内存溢出。
如果数据过小,那么已分配的空间不能够充分利用,就会造成空间浪费。
因此,js中变量的值,并不是直接与变量存储在一起,而是开辟了两个空间分别存放。
当声明一个新的变量时,变量的值与已经存在的变量的值相同时,新的变量值不会重新在内存中开辟空间,而是共同用一个变量值,存放同一个值的内存地址