函数中未定义的变量会向外层作用域进行查找,外层作用域中没有会继续向再外层查找,直到找到变量定义或者全局作用域,形成的作用域套作用域即为作用域链
面试题
var x = 10; function a(y) { var x = 20; return b(y); } function b(y) { return x + y } a(20) //30 //执行b(y),b中的x会从b函数向外层作用域(即全局作用域)查找,所以x=10
函数中未定义的变量会向外层作用域进行查找,外层作用域中没有会继续向再外层查找,直到找到变量定义或者全局作用域,形成的作用域套作用域即为作用域链
var x = 10; function a(y) { var x = 20; return b(y); } function b(y) { return x + y } a(20) //30 //执行b(y),b中的x会从b函数向外层作用域(即全局作用域)查找,所以x=10