码迷,mamicode.com
首页 > Web开发 > 详细

js中局部变量和全局变量的易混点

时间:2017-07-18 10:05:41      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:document   16px   一个   区别   理解   script   赋值   cti   变量   

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中局部变量和全局变量的易混点

标签:document   16px   一个   区别   理解   script   赋值   cti   变量   

原文地址:http://www.cnblogs.com/yyzyxy/p/7198653.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!