<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