8. JS变量赋值

195 阅读1分钟

1. 变量赋值

let a = {
  n: 1
};
let b = a;
a.x = a = {
  n: 2
}
console.log(a.x); // undefined
console.log(b) // {n:1,x:{n:2}}
  1. 栈内存:执行代码、存储变量和基本类型值
  2. 栈内存里包括变量存储空间、值存储空间、主线程执行代码,代码进栈时,先处理等号左边变量,再处理右边值。值为对象时,开一个堆内存,存放对象,得到一个64位地址放到值存储空间,变量存储空间的变量和值存储空间的值关联

2. 堆的嵌套

let a = { n: 1 };
let b = a;
a.x = b;
console.log(a);
console.log(b);
  • 对变量的无限循环嵌套赋值