上面习题中出错的原因在于,没有理清楚,作用域(全局作用域)和执行上下文的关系(全局上下文,局部执行上下文),分析如下 ,当执行到show这个函数里面f()时,在栈里面产生了一个函数上下文,然后现在就会跳转到fn这个函数所在的虚拟栈里面(栈内部的一个封闭空间),执行console.log(x)这个语句时,会找x,此时会在对应的函数上下文环境中找,没有找到的话,就会去这个函数上下文对应的作用域,这个函数作用域的父级作用域找,直至找到全局作用域<(说白了找作用域的话,直接看代码的直观结构就可以了,当然上面的例题也说明了,上下文可以改变 即将要查找的自身作用域和父级作用域的问题)/font>
第二个面试题目