`
java_zhentou
  • 浏览: 18031 次
  • 性别: Icon_minigender_1
  • 来自: 福州
文章分类
社区版块
存档分类
最新评论

变量作用域

阅读更多
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>test1.html</title>
    <script type="text/javascript">
       var yourName="huangwen";
       myName="chenjing";
       function changeName(){
          document.writeln("yourName is "+yourName+"<br>");
          document.writeln("myName is "+myName+"<br>");
       }
       changeName();
       document.writeln(yourName +" like "+myName);
    </script>
  </head>
  
  <body>
   
  </body>
</html>



yourName和myName是一个全局变量
打印出结果是
yourName is huangwen
myName is chenjing
huangwen like chenjing



在changeName()方法末尾添加三行代码
  var yourName ="huangwen1";
          myName="chenjing1";
          document.writeln(yourName +" like "+myName+"<br>");


则打印出来的结果是
yourName is undefined
myName is chenjing
huangwen1 like chenjing1
huangwen like chenjing1



总结: 在函数体里面用var定义的变量是局部变量,局部变量只在本函数体内部可以使用,外部不可以调用局部变量;如果外面定义一个相同名字的全局变量,则在函数体内部局部变量的优先级高于全局变量; 如果在函数体内部定义一个不带var的变量,且跟函数体外的全局变量同名,则这个不带var的变量将会替换掉外部的全局变量 如下代码:
1函数体内带var变量
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>test1.html</title>
    <script type="text/javascript">
        var rain =1;
        function check(){
           var rain =100;//局部变量
            alert(rain);  //显示100
        
        }
        check();
        alert(rain);//显示1
    </script>
  </head>
  <body>
 </body>
</html>

2函数体内不带var变量
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>test1.html</title>
    <script type="text/javascript">
        var rain =1;
        function check(){
          rain =100;//全局变量
            alert(rain);  //显示100
        
        }
        check();
        alert(rain);//显示100
    </script>
  </head>
  <body>
 </body>
</html>

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics