Javascript"怪异"现象

Posted ZuQing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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。

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

以上是关于Javascript"怪异"现象的主要内容,如果未能解决你的问题,请参考以下文章

"use strict"详解

怎么在javascript中实现 下拉列表中嵌套文本框

strict 模式下不允许一个属性有多个定义

谷歌键盘 - 插入图像“发送”意图怪异

在 iOS 上调用“fetch”时出现 Javascript“TypeError:cancelled”错误

Javascript如何在网页上实现画图功能