JavaScript变量域问题

来源:百度知道 编辑:UC知道 时间:2024/06/22 06:34:27
<script language="javascript">
var name="全局变量";
function test(){
var name="局部变量";
document.write(name);
}
document.write(name);
</script>
输出是:
局部变量
全局变量
麻烦大虾给我仔细讲解一下,为什么不会出现冲突啊?
而且在外面就调用外面的可以理解,但在局域内,也是可以看见全局变量的啊!

原因很简单,在函数内部,已经定义了一个与全局变量同名的局部变量name,因此在这个局部变量的作用域内,全局变量“被覆盖”,所有引用的name都是局部变量name

输出是:
局部变量
全局变量

好着呢啊

全局变量 就是本页面能使用的变量,局部变量就是只能在方法体内使用的变量。

<html>
<head>
<script language="javascript">
var name="全局变量";

function test(){
var name="局部变量";
alert(name);
}
alert(name);

</script>

</head>

<body>
<div><a href="#" onClick="test()"> ddddddddddddd</a></div>
</body>
</html>

这是软件程序的一个就近原则,也就是说var name="全局变量"
到方法test中的时候被var name="局部变量"给覆盖了

你的代码有意思哈,test函数不调用就能执行。。。