首页 > 代码库 > js中局部变量和全局变量的易混点
js中局部变量和全局变量的易混点
1.以下输出的是:
undefined
局部变量
<script type="application/javascript">
var scope="全局变量";
function cal(){
document.writeln(scope+"<br />");
var scope="局部变量"; //(1)处
document.writeln(scope+"<br />");
}
cal();
</script>
2.以上不好理解的话,把函数中的scope改为scope1,则易理解。
原因:函数中的变量为局部变量,整个作用域是函数内。这里主要是定义变量用var和不用var的区别。
即:1)如果使用var,则程序会强制定义一个新变量
2)如果不使用,则系统会优先在当前上下文(不仅是上文,还有下文)中搜索是否存在该变量。只有当该变量不存在时,系统才会重新定义。
所以1中搜索到了下文定义的scope,但在(1)处并未赋值,故显示undefined.
js中局部变量和全局变量的易混点
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。