预解析和作用域链问题
老师,对于这个问题不是很懂。我知道如果只看预解析的话,执行fn()的话,结果是undefined;但是如果结合上节课所学的作用域链,就不知道该如何思考了:fn(){}内部有一个局部变量a=2,根据上节课学的作用域链的知识,如果此作用域有的话,就不应该去外部去找。
不知道该怎么思考了,请老师指教
4
收起
正在回答 回答被采纳积分+1
2回答
慕九州5488076
2019-07-22 23:58:35
好吧,自己明白了,如果函数内部的变量不加var的话,这时看成全局变量,那么函数内部是没有变量的,这时通过作用域链看到外部,这时打印是1;如果函数内部的变量加var的话,这时看成局部变量,那么次函数是有变量的就不用通过作用域看函数外面得了,因为打印在变量赋值的上面,所以执行的时候打印的是undefined。
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星