當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
JS_14 执行上下文与执行上下文栈
生活随笔
收集整理的這篇文章主要介紹了
JS_14 执行上下文与执行上下文栈
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
執行上下文和執行上下文棧
變量提升和函數提升
- 變量提升
- 所用使用var定義的變量,在程序運行前會被先定義,并賦初值為underfind,保存到其執行上下文中
- 函數提升
- 在調用函數,執行函數體之前,會先執行函數定義,初值為函數對象
- 先執行變量提升,在執行函數提升
執行上下文
- 全局執行上下文
- 將window確定為全局執行上下文
- 對全局數據進行預處理
- var定義的變量
- function
- this指向window
- 執行全局代碼
- 函數執行上下文
- 在棧中創建虛擬對象,作為函數執行上下文(入棧)
- 對函數局部變量進行預處理
- 形參賦值為實參,添加為函數執行上下文的屬性
- 為argument賦值,添加為函數執行上下文的屬性
- var定義的變量提前
- function提前
- this指向函數執行上下文
- 執行函數
- 釋放上下文對象(出棧)
執行上下文棧
管理和保存所有的執行上下文對象
var c = 1function c(c){c = 2console.log(c)} c(5) // 05.js:31 Uncaught TypeError: c is not a function at 05.js: 31總結
以上是生活随笔為你收集整理的JS_14 执行上下文与执行上下文栈的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 07_JS函数
- 下一篇: 小米8SE 开箱及体验