javascript全局变量与局部变量?
<scripttype="java/script">varvariable="variableinglobal";functiontestVariable(){alert...
<script type="java/script">
var variable = "variable in global";
function testVariable()
{
alert(variable);
var variable = "variable in local";
alert(variable);
}
</script>
为什么第一个 alert(variable); 弹出 undefined, 而第二个 alert(variable); 弹出 variable in local 展开
var variable = "variable in global";
function testVariable()
{
alert(variable);
var variable = "variable in local";
alert(variable);
}
</script>
为什么第一个 alert(variable); 弹出 undefined, 而第二个 alert(variable); 弹出 variable in local 展开
展开全部
详解
<html>
<head>
<script type="text/javascript">
/*
变量的scope是根据方法块来划分的(也就是说以function的一对大括号{ }来划分)
Javascript在执行前(!!!!!!)会对整个脚本文件的声明部分做完整分析(包括局部变量),从而确定实变量的作用域。
当全局变量跟局部变量重名时,局部变量的scope会覆盖掉全局变量的scope,(当离开局部变量的scope后,又重回到全局变量的scope,)
而当全局变量遇上局部变量时,用window.globalVariableName来使用全局变量
*/
</script>
<script>
var variable = "variable in global";
function show(){
alert(variable); //undefined 因为此时variable为局部变量但是代码执行到此处时未赋值
//alert(window.variable); // variable in global 全局变量
var variable = "variable in local"; //声明并初始化variable
alert(variable); // variable in global局部变量
};
</script>
</head>
<body>
<input type="button" onclick="show()"/>
</body>
<script>
</script>
</html>
:
展开全部
js中变量分为全局变量和局部变量两种,在函数内使用var声明的变量是局部变量,不管在函数的什么地方出现,都等价于于在函数一开始声明。所以,在第一次alert时首先查找局部变量variable,此时该局部变量已经声明过了,只是还未赋值,所以是undefined。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
看看书吧
《javascript高级程序设计》里面有详细的讲解
《javascript高级程序设计》里面有详细的讲解
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
去搜一下js的变量提升。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询