js中注册标识符流程
生活随笔
收集整理的這篇文章主要介紹了
js中注册标识符流程
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
注冊分為三個階段:分別是注冊階段,函數處理階段,變量處理階段;這三個階段有先后順序的。(注:這三個階段的名字沒有權威性,是作者為了方便記憶自己起的名字)
注冊階段的特征
1.此時不會運行代碼
2.檢查低級的語法錯誤
3.注冊在當前詞法環境中所聲明的變量和函數
4.一旦創建了新的詞法環境,就會執行這一階段
函數處理階段
如果是函數環境(也就是說局部環境):創建形參及函數參數的默認值;然后實參形參相統一。 如果全局環境,就跳過這這一步
接下來是全局環境和函數環境都經歷的:將函數聲明進行掃描并綁定到當前環境與函數名相同的標識符上。若該標識符已經存在,那么該標識符的值將被重寫。(注意此時不會理會函數表達式和箭頭函數)
對變量進行處理
若在全局作用域中或者函數作用域中。掃描三種變量 var 、let、const定義的變量。
若是塊級作用域:掃描兩種變量 let、const定義的變量。對于所查找到的變量,若該標識符不存在,進行注冊并將其初始化為undefined。若該標識符已經存在,將保留其值。
?
轉載于:https://www.cnblogs.com/weikemudan/p/11152041.html
總結
以上是生活随笔為你收集整理的js中注册标识符流程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 做梦梦到蛇吃人是什么征兆
- 下一篇: 多线程1