////函式的宣告
function getsum(x)
return x + getsum(x - 1);
}//函式的呼叫
**執行getsum(5)--->進入函式, 此時的x是5, 執行的是5+getsum(4), 此時**等待
此時5+getsum(4), **先不進行計算, 先執行getsum(4), 進入函式, 執行的是4+getsum(3), 等待, 先執行的是getsum(3), 進入函式, 執行3+getsum(2), 等待,
先執行getsum(2), 進入函式, 執行 2+getsum(1); 等待, 先執行getsum(1), 執行的是x==1的判斷,return 1,
所以, 此時getsum(1)的結果是1, 開始向外走出去
2+getsum(1) 此時的結果是:2+1
執行:getsum(2)---->2+1
3+getsum(2) 此時的結果是3+2+1
4+getsum(3) 此時的結果是4+3+2+1
5+getsum(4) 此時的結果是5+4+3+2+1
結果:15
JS執行順序
一 語法分析 瀏覽器將所有js檢查一遍,看有沒有語法錯誤,這裡並不會執行,沒有錯誤則進行第二步,預編譯 二 預編譯 首先要理解函式宣告整體提公升,變數 宣告提公升。這裡要注意變數的提公升,一般我們宣告乙個變數都是 var a 1 console.log a 1 但實際上拆分成了兩步,真正執行是這樣的...
js執行順序
執行緒 cpu 排程的最小單位 程序 cpu 資源分配的最小單位 js是單執行緒的,在同一時間,只能做一件事。但是js有同步任務和非同步任務。同步 有a,b兩段 執行完a後執行b 非同步 有a,b兩段 a和b同時執行 在非同步任務中還有微任務和巨集任務 微任務 promise,process.nex...
js 執行順序
同步任務 非同步任務 同步任務 立即執行 非同步任務 進入到非同步佇列當中 event queue eg ajax,settimeout,then,setinterval event loop 事件迴圈 task macro task 巨集任務 micro task 微任務 macro task 巨...