本人前端小白,没有名师指点,只是一点点自己摸索前进。虽然对错都分不清,可依然没有退缩。从今天起,本人开始写自己的技术博客。不是为了指点别人,而是自己做些笔记。我会尽量详细些,因为我记性不好,怕自己忘了。嘿嘿……废话不多说,开始说正事。
第一步:js声明一个普通的变量a
var a = '123';
第二步:把a赋值给一个新的变量b
var b = a;
console.log(b);
此时得到的结果是:
第三步:我们改变变量a的值
var a = '123';
var b = a;
a = 'abc';
console.log('a = '+a);
console.log('b = '+b);
此时得到的结果:
综上所述,本人猜测(柯南式托腮):
程序在声明变量时,
(1)在内存中创建了’123’变量,并且保存到这个变量自己的一小块内存当中。
(2)在内存中创建了一个名为a的变量,并把它指向’123’的内存地址。
当我改变a的时候,只有变量a的指向发生了改变,指针指向了新创建的’abc’的内存地址,但是变量’123’还是存在的。
【变量赋值只是改变指针的过程】
让我突然想到js的垃圾回收机制,等我搞得清楚了,再写吧。
中午了,吃饭饭了。嘿嘿嘿……