你不知道的JavaScript-範圍是什麼

來源:互聯網
上載者:User

標籤:執行   代碼執行   規則   一個   範圍   cee   調用函數   rip   是什麼   

範圍是一套規則,用於確定在何處以及如何尋找變數、函數等(標識符)。如果尋找的目的是對變數進行賦值,那麼就會使用 LHS 查詢;如果目的是擷取變數的值,就會使用 RHS 查詢。


賦值操作符會導致 LHS 查詢。 = 操作符或調用函數時傳入參數的操作都會導致關聯範圍的賦值操作。


JavaScript 引擎首先會在代碼執行前對其進行編譯,在這個過程中,像 var a = 2 這樣的聲明會被分解成兩個獨立的步驟:

  1. 首先, var a 在其範圍中聲明新變數。這會在最開始的階段,也就是代碼執行前進行。
  2. 接下來, a = 2 會查詢(LHS 查詢)變數 a 並對其進行賦值。


LHS 和 RHS 查詢都會在當前執行範圍中開始,如果有需要(也就是說它們沒有找到所需的標識符),就會向上級範圍繼續尋找目標標識符,這樣每次上升一級範圍(一層樓),最後抵達全域範圍(頂層),無論找到或沒找到都將停止。


不成功的 RHS 引用會導致拋出 ReferenceError 異常。不成功的 LHS 引用會導致自動隱式地建立一個全域變數(非strict 模式下),該變數使用 LHS 引用的目標作為標識符,或者拋出 ReferenceError 異常(strict 模式下)。

 

你不知道的JavaScript-範圍是什麼

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.