Javascript"怪异"现象

  下面给大家看个例子,这个毫无疑问打印出10

1         var a = 10;
2         function test() {
3             console.log(a);
4         }
5         test();

下面我改动一下

1         var a = 10;
2         function test(){
3             console.log(a);
4             var a = 9;
5             console.log(a);
6         }
7         test();

这个时候会打印出

我个人觉得:在调用test方法执行到console.log(a)这句时会扫描下整个方法是否有定义a变量,如果没有则继续往上找,如果找到则停止,也就是第一个为什么能打印出10

                 如果在方法内有找到此变量,则不再往上寻找,此时a没有被赋值,则为undefined。

不知理解的有没有问题,希望大家指点

posted @ 2016-04-03 14:29  ZuQing  阅读(254)  评论(0编辑  收藏  举报