(转载)JavaScript中定义变量

(转载)http://blog.163.com/xuxiaoqianhz@126/blog/static/165190577201061594421870/

JavaScript中定义变量有两种方式:

1 使用var关键字定义变量,如“var bookSum;”

  该种方式可以定义全局变量也可以定义局部变量,这取决于定义变量的位置。

  在函数体中使用 var关键字定义的变量为局部变量;在函数体外使用var关键字定义的变量为全局变量。

2 不使用var关键字,而是直接通过赋值的方式定义变量,如“bookSum=100;”

  使用该方式定义的变量为全局变量,与位置无关。

如:

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

        function myFunction() {

        var myValue = "这是一个局部变量";

            document.write("这是在函数体内输出的文字:", myValue);

        }

        myFunction();

        //如果使用以下语句将会出错

        //document.write(myValue);

</script>

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

            function myFunction() {

                var myValue = "这是一个全局变量";

                document.write("这是在函数体内输出的文字:", myValue);

            }

            myFunction();

            document.write(myValue);//可以在函数体外引用变量

        </script>

注意事项:

1 变量必须先定义后使用

2 允许为未定义的变量赋值,在给未定义的变量赋值时,JavaScript会自动定义该变量,并且该变量会作为全局变量出现在JavaScript代码中。

3 允许重复定义变量,每次定义变量的语句都是有效语句。

如:

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

        var myVariable = 1;

        document.write(myVariable + 100, "<br>");

        var myVariable = "这是一个字符串";

        document.write(myVariable, "<br>");

        var myVariable = true;

        if (myVariable) {

            document.write("变量myVariable是一个布尔类型的变量");

        }

</script>

4 可以在程序的任何一个位置声明变量,该变量会在整个有效作用范围内起效,而不是从定义变量的那一行代码开始起效。

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

        var myCount = 1;

        function myFun() {

            document.write(myCount, "<br>");

//该行语句输出为undefined,而不是1,因为在函数体内定义了局部变量myCount,局部变量的优先级高于全局变量,因此,此处的myCount是局部变量,而不是全局变量

            var myCount = 100;

//该行语句输出100。在JavaScript中虽然可以一处定义变量随处生效,但是变量的赋值必须从赋值语句开始生效。

            document.write(myCount, "<br>");

        }

        myFun();

    </script>

5 虽然在JavaScript中的变量没有语句块的限制,但是由函数的限制,只要是在当前函数体中定义的局部变量,都不能在其他函数体重使用。

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

        function myFun() {

            for (i = 1; i < 5; i++) {

                var k = 10;

                document.write("i=1", i, "<br>");

                document.write("k=", k, "<br>");

                //在for语句中定义的变量k,可以在for语句块中使用

            }

            document.write("k=", k, "<br>");

            //也可以在for语句块之外使用

        }

        myFun();

        //不能在函数体外使用,下面语句会报错

        //document.write("k=", k, "<br>");

    </script>

原文地址:https://www.cnblogs.com/Robotke1/p/3211923.html