js不是從上到下執行的嗎?

2022-02-28 19:52:49 字數 1128 閱讀 7561

如果說js是從上到下解釋執行的,

那麼,按道理應該會執行錯誤前面的**。

如:【**一】

//輸出1,2,到3報錯

console.log("一")

console.log("二")

console.log(三)

【**二】
//直接報錯

console.log("一")

console.log("二")

console.log('三")

為什麼**二直接報錯呢?

我猜想:

是因為瀏覽器看閱讀js**時,一開始他並不知道你寫的是什麼。

他需要閱讀完後才知道。

但這個閱讀並不是一下子把所有js**讀完。

而是這樣的。

比如:【**三】

//直接報錯

console.log(1)

functionfn()

瀏覽器應該是先把所有js大概閱讀一下,部署一下**。

比如把所有函式提到js的開頭。

但是上面的**}被注釋了,瀏覽器找不到。

也就是出現了乙個語法錯誤,便不再繼續執行。

也就是說像上面的js**應該瀏覽器提函式時直接查出了錯誤。

那麼,如果沒有函式呢?比如【**一】。

我想,應該是對於括號()引號""'',這些像函式的{}一樣成對的東西,瀏覽器也對他們進行檢查了。

畢竟他們的語法就是應該成對的。

可以,這些都只是「我想」而已,有沒有比較權威,或者前輩給我說說到底是怎麼回事呢?

研究一下。

Dubbo模型從上到下

soa,orm,mvc,aop rpc,socket,管道 無名管道 單向傳輸 命名管道 可雙向 nio,bio,aio nio,bio,aio的區別 epoll,poll,select epoll poll sellect,epoll詳解 好文 epoll 好文 fd檔案描述,使用者態和核心態的切...

Python劍指offer 分行從上到下列印二叉樹

從上到下按層列印二叉樹,同一層的節點按照從左到右 的順序列印,每一層列印到第一行,例如本題中上乙個問題的二叉樹 輸出形式會是 86 10 5 7 9 11 這道題和前面一道題十分類似,也可以用乙個佇列來儲存要列印的節點。為了把二叉樹的每一行單獨列印到一行裡,我們需要兩個變數 乙個變數表示當前層中還沒...

從上到下列印二叉樹

原理是二叉樹的層次遍歷 可以用乙個佇列輔助,先將二叉樹根節點入隊,然後出隊,將該節點存入vector中,之後判斷根節點的左子樹和右子樹是否為空,若不為空,依次入隊。然後出隊,再訪問出隊的結點是否有左右子樹,以此類推。核心 vectorprintfromtoptobottom treenode roo...