javascript全局变量与局部变量?
发布网友
发布时间:2022-04-07 05:37
我来回答
共4个回答
热心网友
时间:2022-04-07 07:06
详解
<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>
:
热心网友
时间:2022-04-07 08:24
js中变量分为全局变量和局部变量两种,在函数内使用var声明的变量是局部变量,不管在函数的什么地方出现,都等价于于在函数一开始声明。所以,在第一次alert时首先查找局部变量variable,此时该局部变量已经声明过了,只是还未赋值,所以是undefined。
热心网友
时间:2022-04-07 09:59
看看书吧
《javascript高级程序设计》里面有详细的讲解
热心网友
时间:2022-04-07 11:50
去搜一下js的变量提升。