个人觉得:var 开辟空间存数据 var a=1; 在计算机里面每个数据都是有“地址”的,就是在内存 寻址空间里面
"=" 号的作用 简单简单点就是 将左边的值 赋值 给右边;
上面的例子 var a=1; var b=a; 将a 存的 数值 1 的地址给了 b b开了个空间来存.
b=2; 这个时候重点:js 内部做了个判断 1 == 2 不等于 所以开辟了新的空间
来存, 如果 是 b=1; 这不开辟空间新空间 b 存 a 的 地址 以此来 节省内存。
var a=[1]; 开辟内存 [1], a 存 地址;
var b=a; 地址给b a与b 指向同一段内存空间;
b.push(2); a 输出[1,2],这是应为改变了原数据,也就是地址对应的数据;
这里string 之所以不行 是应为string没有改变原始值得API;
这里可以引申到函数的传参,var a=[1] function fn(b){}; fn(a) ;
其实函数在执行的时候 先 var b=a; //哈哈哈这样大家就懂了吧 循环也是哟
我只是菜鸟,没有看过js源码 这只是我对js的经验解释