js如何控制初始化順序?
先全局上下文,首先是變量提升給undefined值 , 然后是函數(shù)提升。放變量和函數(shù)提升以后,按序執(zhí)行代碼,還有顯式的變量賦值 ,以下代碼 c 在變量提升,函數(shù)提升之后,又經(jīng)過(guò)顯式賦值,最終仍變會(huì)number 類(lèi)型。
1. 在全局代碼執(zhí)行前, JS引擎就會(huì)創(chuàng)建一個(gè)棧來(lái)存儲(chǔ)管理所有的執(zhí)行上下文對(duì)象2. 在全局執(zhí)行上下文(window)確定后, 將其添加到棧中(壓棧)
3. 在函數(shù)執(zhí)行上下文創(chuàng)建后, 將其添加到棧中(壓棧)
4. 在當(dāng)前函數(shù)執(zhí)行完后,將棧頂?shù)膶?duì)象移除(出棧)
5. 當(dāng)所有的代碼執(zhí)行完后, 棧中只剩下window