如何理解JavaScript中的作用域(2)

这段代码中,引擎首先会在foo函数中问foo的作用域,你见过b吗?foo作用域:没见过,滚犊子。然后引擎沿着作用域链往上爬,爬到了全局作用域中,然后问:全局作用域大哥你见过b吗?全局作用域:嗯 我见过,给你吧。

嵌套作用域规则很简单,就是在当前作用域开始,一级一级地向上查找。直到抵达最外层全局作用域,查找过程就会停止!

之前说过,变量在赋值操作前总是会先查找然后再赋值,如果在非严格模式下,查找不到所要赋值的变量,全局作用域中会隐式的创建一个具有该名称的变量并返回给引擎。如下:

function foo(a){ console.log(a+b); b = a; } foo(2); // 4

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/5cf4392ad9ccd301d7c52844901c38c9.html