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。
不知理解的有没有问题,希望大家指点