做用域鏈經典問題

<script>
        function fn1(){
            var i="a";
            function fn2(){
                i="b";
                function fn3(){
                    i="c";
                }
                fn3();
            }
            fn2();
            console.log(i);
          }   
        fn1();
        
    </script>

結果:cspa

解析以下:牢記做用做用域鏈四條原則code

一、 當對一個變量產生引用時,要遵循做用域鏈原則。嘗試引用一個變量,先在當前做用域尋找該變量的聲明語句(var 變量名)。有,直接使用該變量。blog

二、 若是沒有,繼續向上一級做用域尋找var聲明語句。有,直接使用ip

三、 若是仍是沒有,繼續向上一級做用域尋找var聲明語句。有,直接使用作用域

四、周而復始,直到查詢到全局做用域,依然沒有var聲明語句,系統會隱式(自動)地建立該變量的聲明語句io

相關文章
相關標籤/搜索