js var变量具体含义和用法

来源:互联网 发布:便捷软件 编辑:程序博客网 时间:2024/04/28 09:53

经验研究发现 JavaScript 的 var 关键字貌似是用来声明局部变量的。

下例子声明了2个局部变量
<script language="javascript">
<!--
    var str = "Hello";
    function change() {
        var str = "say";
    }
    change();
    document.write(str);
-->
</script>
change()函数里 str 变量的值改变不会影响函数外的 str 变量。例子输出:Hello

下面声明了一个全局变量和一个局部变量
<script language="javascript">
<!--
    str = "Hello";
    function change() {
        var str = "say";
    }
    change();
    document.write(str);
-->
</script>
函数里 str 的改变不会影响到函数外的 str 变量,应为它是局部的。例子输出:Hello

下面2个例子
<script language="javascript">
<!--
    var str = "Hello";
    function change() {
        str = "say";
    }
    change();
    document.write(str);
-->
</script>

<script language="javascript">
<!--
    str = "Hello";
    function change() {
        str = "say";
    }
    change();
    document.write(str);
-->
</script>
虽然第一个例子函数外的 str 变量声明为局部的但是在函数里仍然能改变它的值。全局变量的作用域是什么?在一个 .js 文件里?一个 HTML 文件里?还是别的?两个例子都输出:say

var 不一定是用来定义局部变量的
jscript的全局变量和局部变量的分界是这样的
过程体(包括方法function,对象Object o ={})外的所有变量不管你有没有加var保留字,他都是全局变量
而在过程体内(包括方法function(){},对象Object o={})内的对象加var保留字则为局部变量,而不加var保留字即为全局变量
js的全局作用域应该是在看着办的的范围内,不一定是同一个页面,比如说在一个iframe里就不可以调用嵌入他的页面的JS
个人总结:var在过程体function和object v={}内部的var只属于该过程体,也就是只要var在过程体内就只听过程体一个人的命令,过程体外面的干我甚事,他影响不了我,我也影响不了他
 
举个例子来说明:过程体外边就好像一个国家,
              过程体内部就好像一个家庭,
              1).如果过程体内部有var
              国家开奥运会是他自己的事,他开他的奥运会,我在家里睡我的觉,互相不影响;
 
              2).如果过程体内部没有var
              国家开奥运会要你家里面出个人作为志愿者,这时候你就受到国家的影响,同时你也影响了            国家
0 0