JS作用域和作用域链
Posted maycpou
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS作用域和作用域链相关的知识,希望对你有一定的参考价值。
在JS代码执行之前会首先创建一个全局作用域,里面有所有的定义的变量。
在函数定义的时候也会创建一个函数的作用域,作用域中包含了该函数中所定义的变量。
具体还没有理解很清楚,感觉作用域和执行上下文很像。
就是当在函数执行的代码中使用到某个变量的时候,它首先会在自己的作用域中找该变量,如果找不到就去上一级的作用域中找,一直到全局作用域,直到找到为止。如果都找不到就为undefined。
注在es5中没有块作用域,在es6中有。
及例子如下:
if(true)
{
var a = 4;
}
console.log(a);//在es5中是可以输出4的,因为一个{}中的代码就叫做块作用域,在es5中没有块作用域,只有函数作用域。
以上是关于JS作用域和作用域链的主要内容,如果未能解决你的问题,请参考以下文章