typeof、搖樹優化、js預編譯
阿新 • • 發佈:2017-11-10
顯示 obj 表達 string defined 原始的 刪除 執行 undefined 3. 查找函數聲明,函數名作為全局對象的屬性,值為函數引用
typeof:
typeof用以獲取一個變量或者表達式的類型,一元運算符
- null:空、無。表示不存在,當為對象的屬性賦值為null,表示刪除該屬性
- undefined:未定義。當聲明變量卻沒有賦值時會顯示該值。可以為變量賦值為undefined
- number:數值。最原始的數據類型,表達式計算的載體
- string:字符串。最抽象的數據類型,信息傳播的載體
- boolean:布爾值。最機械的數據類型,邏輯運算的載體
- object:對象。面向對象的基礎
註意:沒有數組,因為type數組時結果是object
js預編譯:
腳本執行js引擎執行步驟:
- 語法分析
- 預編譯
- 解釋執行
語法分析:引擎檢查你的代碼有沒有什麽低級的語法錯誤
預編譯:在內存中開辟一些空間,存放一些變量與函數
解釋執行:顧名思義便是執行代碼了
預編譯(函數執行前)※
1. 創建AO對象(Active Object)
2. 查找函數形參及函數內變量聲明,形參名及變量名作為AO對象的屬性,值為undefined
3. 實參形參相統一,實參值賦給形參
4. 查找函數聲明,函數名作為AO對象的屬性,值為函數引用
預編譯(腳本代碼塊script執行前)
1. 查找全局變量聲明(包括隱式全局變量聲明,省略var聲明),變量名作全局對象的屬性,值為undefined
typeof、搖樹優化、js預編譯