JavaScript 变量 作用域 内存处理

变量:

基本类型的变量存储在栈中;通过变量名可直接获取值

引用类型的变量存储在堆中,栈中存储的是引用类型的变量的地址(指针)映射;先从栈中获取地址,在获取值

作用域:

ES5:全局作用域+局部作用域

ES6:全局作用域+局部作用域+块级作用域

全局作用域:定义在函数外部

局部作用域:定义在函数内部

console.log(x);            //var定义的变量存在位置提升,可提前访问,但得不到值,默认undefined
var x=123;
function fn(n){            //形参为局部变量
    console.log(x+10);     //
    var y=20;
}
fn();                      //可,外部定义的函数为全局变量
console.log(y);            //不可

内存处理:js自动回收

var oll = {name:'Lee'};
oll = null;             //解除对象引用,等待垃圾回收器回收
原文地址:https://www.cnblogs.com/goule/p/13541061.html