引用类型的属性如果不被销毁或者删除将一直存在。
执行环境定义了变量或函数有权访问其他数据,决定了他们各自的行为。
每个执行环境都有一个与之关联的变量对象,保存着环境中定义的所有变量和函数。
当代码在环境中执行时,会创建变量对象的一个作用域链,用途:保证对执行环境有权访问的所有变量和函数的有序访问
延长作用域链
try-catch 语句的catch块,with语句可以在作用域链的前端临时增加一个变量对象,该变量对象会在代码执行后被移除。
with语句:会将指定的对象添加到作用域链中。
catch块:会创建一个新的变量对象,其中包含的是被抛出的错误对象的声明。
由for语句创建的变量i即使在for循环执行结束后,也依旧会存在于循环外部的执行环境中。

var num={}; alert(num);//[object Object] var num; alert(num)//undefined; var colors=["red","green","blue","black"]; var remov=colors.indexOf("green",2);//第2个参数为开始查找的位置 alert(remov);//