javaScript教程50: 變數尋找規則與詞法範圍

來源:互聯網
上載者:User

標籤:尋找   OLE   自己的   不能   局部變數   代碼   5.0   cti   java   

範圍:

1 在es5.0中只有函數可以構成一個範圍 2 全域範圍: 整個js代碼執行的環境 3 局部範圍: 函數可以構成一個局部範圍 4 全域變數: 在全域範圍中申明的變數 5 局部變數: 在函數構成的局部範圍中申明的變數

var a = 1;  function fn(){   var a = 2;    function fnA(){     a = 3;     console.log(a);  //3    }   fnA();   console.log(a); // 3  }    fn();  console.log(a);// 1

 

詞法範圍(靜態範圍):

  1. 外部範圍不能訪問內容範圍的變數
  2. 尋找變數時,順著範圍鏈尋找
  3. 在代碼執行之前,先執行預解析規則
  4. 如果要調用函數,函數內部也要先進行預解析
  5. 如果要給變數賦值之前,一定要先找到變數

變數的尋找規則

1 先在自己的範圍裡面找,如果沒有就順著範圍鏈往上找,找到則返回,找不到則一直找到全域為止 2 如果要直接賦值的話,找到全域也沒有,那麼瀏覽器會幫我們自動建立一個出來 3 如果只是訪問的話,找到全域都沒有就報錯 xxx is not defined

javaScript教程50: 變數尋找規則與詞法範圍

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.