它首先会在自己的作用域中找该变量
在JS代码执行之前会首先创建一个全局感化域,里面有所有的界说的变量。
在函数界说的时候也会创建一个函数的感化域,,感化域中包罗了该函数中所界说的变量。
具体还没有理解很清楚,觉得感化域和执行上下文很像。
就是当在函数执行的代码中使用到某个变量的时候,它首先会在本身的感化域中找该变量,如果找不到就去上一级的感化域中找,一直到全局感化域,直到找到为止。如果都找不到就为undefined。
注在es5中没有块感化域,在es6中有。
及例子如下:
if(true)
{
var a = 4;
}
console.log(a);//在es5中是可以输出4的,因为一个{}中的代码就叫做块感化域,在es5中没有块感化域,只有函数感化域。
JS感化域和感化域链
温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/30790.html