當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
javascript异步机制 — call stack
生活随笔
收集整理的這篇文章主要介紹了
javascript异步机制 — call stack
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
代碼在運行過程中,會有一個叫做調用棧(call stack)的概念。調用棧是一種棧結構,它用來存儲計算機程序執行時其活躍子程序的信息。(比如什么函數正在執行,什么函數正在被這個函數調用等等信息)。調用棧是JS引擎執行程序的一種機制。程序每調用一層函數(方法),引擎就會生成它的棧幀,棧幀里面保存了函數的執行上下文,然后將它壓入調用棧。棧是一個后進先出的結構,直到最里層的函數執行完,引擎才開始將最后加入的棧幀從棧中彈出。
函數調用會在內存形成一個“調用記錄”,又稱“調用幀”(call frame),保存調用位置和內部變量等信息。如果在函數A的內部調用函數B,那么在A的調用幀上方,還會形成一個B的調用幀。等到B運行結束,將結果返回到A,B的調用幀才會消失。如果函數B內部還調用函數C,那就還有一個C的調用幀,以此類推。所有的調用幀,就形成一個“調用棧”(call stack)
const bar = () => console.log('bar')const baz = () => console.log('baz')const foo = () => {console.log('foo')bar()baz() }foo()
每次迭代中的事件循環都會查看調用堆棧中是否有東西并執行它直到調用堆棧為空:
有異步任務時call stack 的執行順序
總結
以上是生活随笔為你收集整理的javascript异步机制 — call stack的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安装了jdk和jre无法打开jar文件(
- 下一篇: Linux下nand flash读写测试