语言特性-变量作用域

Javascript中,作用域是由函数划分的不是块{while,for,if}划分的,写惯了C#C++的代码后,这块要注意! [需注意:for循环是无法创建本地上下文的独立的作用域只有通过函数代码才能创建出来]

<script language="javascript" type="text/javascript">

        for (var k = 0; k < 2; k++) {

            alert(k);

        }

        alert(k);

        alert(window.k == k);

    </script>

//虽然for循环结束了,但是K依然有效

<script language="javascript" type="text/javascript">

        var temp = "wo laishi window";

        if (true) {

            temp = "wo laisi if"; //此处依旧为全局变量,覆盖原数据值

        }

        alert(temp);

 

        function nation() {

            var temp = "wo laizi nation";

            alert(temp);  //仅此一处为局部变量

        }

        nation();

 

        alert(temp);

        alert(temp == window.temp);

 

        //---------------------------------------------

        var a = "rxm";

        function fun() {

            alert(a);

            var a = "123";

            alert(a);

        }

        fun();

        alert(a);

        //输出结果:undefined;123;rxm

 

        //---------------------------------------------

        function fun() {

            var a = "rxm";

            b = "cwr";

        }

        fun();

        alert(a); //错误,a局部变量

        alert(b); //"cwr",b全局变量。

        //此处的b相当于[所有属于全局作用域的变量都是window的属性]

        alert(window.b == b);

        //---------------------------------------------

    </script>

原文地址:https://www.cnblogs.com/hometown/p/3204221.html