全局变量和局部变量

作用域:变量的作用范围,内部作用域由局部变量,函数,形参,实参组成。

作用域链:用途:保证执行环境中有权访问的变量和函数式有序的,作用域链的变量只能向上访问,变量访问到window对象终止,作用域链向下访问是不允许的。

局部变量:在函数中用var声明的变量,当函数执行完毕后变量就会立即销毁。函数外部无法访问局部变量。

全局变量:变量被声明在全局作用域下,在代码的任何位置使用这个变量。应该尽量减少全局变量的使用,会造成命名空间污染。

如何减小使用?

1.使用对象字面量的方式创建对象,将变量作为对象的属性。

2.把变量封装在闭包的内部,只暴露接口和外部通讯

var user=(function(){
    var name='sevn';
    var age=18;
    return {
        getUserInfo:function(){
            return name+' '+age;
        }
    }
})();

Javascript垃圾回收方法?

  1. 标记清除:这是所有浏览器最常用的一种垃圾回收方式,当变量进入环境(在函数在声明一个变量)时,将其标记为“进入环境”,当变量离开环境(函数执行结束)时,将其标记为离开环境。垃圾收集器会按照固定的时间间隔周期性的释放内存。
  2. 引用计数:当声明了一个变量并将一个引用类型的值赋给该变量时这个值得引用次数+1,当去掉这个引用时,引用次数-1,当引用次数为0时表明可将其内存回收
原文地址:https://www.cnblogs.com/t1amo/p/6773032.html