变量
- 原始值(String,Number,Boolean,Null,Undefined,Symbol)大小固定,保存在栈内存
- 引用值是对象,保存在堆内存
- 变量保存引用值时,保存的是指向引用对象的指针
执行上下文与作用域
变量或函数的上下文决定了他们可以访问哪些数据,以及他们的行为;
每个上下文都有一个关联的 变量对象 ;这个上下文中定义的所有变量和函数都存在于这个对象上;我们无法通过代码访问这个变量对象,但后台处理数据会使用它
全局上下文对象会根据宿主环境变化而变化,在浏览器中是window对象
上下文在其所有代码执行完毕后会被销毁,包括上面的所有函数和变量,全局上下文会在应用程序退出前销毁,如关闭网页或退出浏览器
每个函数调用都有自己的上下文,代码执行该函数时,其上下文被推入 上下文栈,执行完后出栈
上下文中的代码执行时会创建变量对象的一个作用域链,该链相当于串起了上下文栈中的所有上下文环境,该链决定了访问变量和函数时的顺序
内存
- 主流的垃圾回收算法是 标记清理
- 全局声明,闭包容易导致内存泄露