總結javascript中的全局變量和局部變量的區別以及聲明函數和調用函數的區別


 
         
<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="utf-8"/>
    <title></title>
    <script src="../js/jquery-1.10.2.js"></script>
    <script>
//        1 i為全局變量 輸出全局變量
        function myName() {
            i = '全局變量';
        }
        myName();
        function sayName() {
            alert(i);
        }
        sayName();

//        2 i為局部變量 運行出錯 顯示i未定義
        function myName() {
            var i='局部變量';
        }
        myName();
        function sayName() {
            alert(i);
        }
        sayName();

//        3 將1中的myName()去掉 運行出錯 顯示i未定義,雖然聲明了函數,但是沒有調用函數,函數中的i的賦值失效。
        function myName() {
            i = '全局變量';
        }
        function sayName() {
            alert(i);
        }
        sayName();

//        4 將1中的myName()放到sayName()的下面 運行出錯 顯示i未定義,雖然聲明了函數 調用了函數 但是因為javascript調用的函數自上而下運行,
//          當運行sayName時並沒有運行myName().
        function myName() {
            i = '全局變量';
        }
        function sayName() {
            alert(i);
        }
        sayName();
        myName();

//        5 運行結果顯示是全局變量。雖然變量名稱相同,但是一個是全局變量,一個是局部變量,有着本質的區別,局部變量只能在本函數之內使用
        var i = '全局變量';
        function myName() {
            var i = '局部變量';
        }
        myName();
        function sayName() {
            alert(i);
        }
        sayName();

//        6 將5的局部變量改成全局變量,運行結果顯示改變的全局變量
        var i = '全局變量';
        function myName() {
            i = '改變的全局變量';
        }
        myName();
        function sayName() {
            alert(i);
        }
        sayName();

//        7 運行結果顯示undefined,因為代碼的執行順序是從上到下的,在輸出i之前並只定義了i,沒有對i初始化。
        var i;
        function sayName() {
            alert(i);
            i = '全局變量';
        }
        sayName();

//        8 運行結果顯示全局變量,在輸出之前初始化i就沒有問題了
        var i;
        function sayName() {
            i = '全局變量';
            alert(i);
        }
        sayName();
//        9運行結果顯示undefined,因為輸出的是局部變量,而局部變量得初始化在輸出之后。
        var i = '全局變量';
        function sayName() {
            alert(i);
            var i = '局部變量';
        }
        sayName();
    </script>
</head>
<body>

</body>
</html>
 
         

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM