一个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。