首頁  >  文章  >  web前端  >  JavaScript是否使用var定義變數的區別,舉例說明

JavaScript是否使用var定義變數的區別,舉例說明

php是最好的语言
php是最好的语言原創
2018-07-28 13:51:571577瀏覽

javaScript與java、c語言雖然有很多相同,但也有差異。

JavaScript的變數沒有區塊範圍,唯一有自己作用域的就是函數。

(1)看下面的範例

<script type="text/javascript">
    //定义全局变量
    var scope="全集变量";    function test(){
        //全局变量被局部变量覆盖
        document.writeln(scope+"<br/>")        //定义scope局部变量,起作用范围是整个函数
        var scope="局部变量";        //再次输出scope值
        document.writeln(scope);
    }
    test();</script>

運行結果:
undefined
局部變數

(2)去掉test()中的var

<script type="text/javascript">
    //定义全局变量
    var scope="全集变量";    function test(){
        //全局变量被局部变量覆盖
        document.writeln(scope+"<br/>")        //定义scope局部变量,起作用范围是整个函数
        scope="局部变量";        //再次输出scope值
        document.writeln(scope);
    }
    test();</script>

運行結果:
全集變數
局部變數

(3 )原因分析

主要是定義變數用var和不用var確實存在差異:

①如果使用var變量,那麼程式會強制定義一個新變數

②如果沒有使用var定義變量,系統會優先在當前上下文中搜尋是否存在該變量,只有在該變量不存在的前提下,系統才會重新定義一個新變量

上面之所以從undefined變成“全域變數”,是因為定義局部變數的程式碼處不是定義新變量,而是直接建立全域變數scope賦值。 因此test()並沒有覆寫全域變數scope,故也就輸出「全域變數」

javaScript與java、c語言雖然有很多相同,但是也存在差別。

JavaScript的變數沒有區塊範圍,唯一有自己作用域的就是函數。

(1)看下面的範例

<script type="text/javascript">
    //定义全局变量
    var scope="全集变量";    function test(){
        //全局变量被局部变量覆盖
        document.writeln(scope+"<br/>")        //定义scope局部变量,起作用范围是整个函数
        var scope="局部变量";        //再次输出scope值
        document.writeln(scope);
    }
    test();</script>

運行結果:
undefined
局部變數

(2)去掉test()中的var

<script type="text/javascript">
    //定义全局变量
    var scope="全集变量";    function test(){
        //全局变量被局部变量覆盖
        document.writeln(scope+"<br/>")        //定义scope局部变量,起作用范围是整个函数
        scope="局部变量";        //再次输出scope值
        document.writeln(scope);
    }
    test();</script>

運行結果:
全集變數
局部變數

(3 )原因分析

主要是定義變數用var和不用var確實存在差異:

①如果使用var變量,那麼程式會強制定義一個新變數

②如果沒有使用var定義變量,系統會優先在當前上下文中搜尋是否存在該變量,只有在該變量不存在的前提下,系統才會重新定義一個新變量

上面之所以從undefined變成“全域變數”,是因為定義局部變數的程式碼處不是定義新變量,而是直接建立全域變數scope賦值。 因此test()並沒有覆寫全域變數scope,故也就輸出「全域變數」

#相關文章:

javascript定義變數時帶var與不帶var的區別分析_javascript技巧

#javascript定義變數時加var與不加var的區別_基礎知識

相關影片:

JavaScript 基礎加強影片教學

#

以上是JavaScript是否使用var定義變數的區別,舉例說明的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn