您的位置:首页 > Web前端 > JavaScript

javascript里有关全局变量和局部变量的一些细节

2016-10-12 21:50 288 查看
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script type="text/javascript">
var x=1;
function calc(){
document.write('函数体内x='+x+'<br />');
var x= 3;
document.write('定义局部变量后函数体内x='+x+'<br />');
x=5;
}
calc();
document.write('函数体外x='+x+'<br />');

</script>
</body>
</html>

输出结果为:

函数体内x=undefined
定义局部变量后函数体内x=3
函数体外x=1

思考:第一句x=undefined和var x=3相关,如果注释掉var x=3,那么第一句结果是x=1,结论是只要函数里存在同名局部变量,局部变量的优先级一定高于全局变量。为了加深理解,该函数体等价于

<span style="font-size:10px;">function calc(){
var x;
document.write('函数体内x='+x+'<br />');
x= 3;
document.write('定义局部变量后函数体内x='+x+'<br />');
x=5;
}</span>
另:一旦函数里出现var x(不论在什么位置),该x即为局部变量,即无法对同名的全局变量产生任何影响。换句话说,如果要在函数里改变全局变量的值,则不能在任何位置出现var 同名变量。


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: