读书人

一个js变量有关问题

发布时间: 2012-11-09 10:18:48 作者: rapoo

一个js变量问题

HTML code
<html>    <head>        <script type="text/javascript">            var a=1;            function show(){                alert(a);                var a=2;            }        </script>    </head>    <body>        <div onclick="show()">dddd</div>    </body></html>

为什么调用show会显示undefine啊,求解释?

[解决办法]
你alert(a)的a其实指的是你在show中定义的a 此时还未赋值 所以是undefined
你虽然定义a时是在alert之后 但其实是类似于这样的
var a=1;
function show(){
var a;
alert(a);
a=2;
}
[解决办法]
js的预编译导致函数内部变量a覆盖了外部变量,而在alert();语句执行时,变量a(内部)未定义,所以是undefined。

读书人网 >JavaScript

热点推荐