簡體   English   中英

Javascript中代碼的執行順序是什么?

[英]What is the order of execution of code in Javascript?

JavaScript 中的代碼究竟是如何執行的? 我的意思是按什么順序? 如果我這樣聲明 function,執行順序會不會有所不同:

function render() {
    // Code here
}

而不是這個:

var render = new function(){
    // Same code here
}    

JavaScript 是否執行腳本文件中定義的函數,無論它們是否被事件處理程序調用? (例如onload=function() )。

And finally if a function is defined in another function, when the parent function is called, is the lower function also called too? 例如

function a(){

    function b(){
        // code
    }

    function c(){
        //code
    }

}

我試圖具體了解 JavaScript 中的執行順序。

提升了 function 聲明(因此可以在代碼中更早地調用它然后定義它),而不是 function 語句。

JavaScript 是否執行腳本文件中定義的函數,無論它們是否被事件處理程序調用?

一個 function 在被調用時被調用。 要么是因為某些東西具有theFunction后跟() (可能帶有參數),要么是因為它已成為事件處理程序。

onload="function"

如果那是 JS,那么它將為期望 function 的東西分配一個字符串。 如果是HTML,那么需要()調用function。

And finally if a function is defined in another function, when the parent function is called, is the lower function also called too?

沒有。 A function 只有在被調用時才會被調用。 在另一個內部聲明 function 只會限制其 scope。

var render = new function(){
  // same code here
}

new關鍵字不會創建新的 Function。 它通過運行 function 創建一個新的 object。 所以這實際上會運行方法體並返回 object 。

如果您詢問何時解析函數並將其添加到 scope 那么這是特定於實現的,但是所有函數都被提升到 scope 的頂部,並且通常在執行任何代碼之前進行解析。

僅當您通過調用f()調用函數時才會執行函數

當您聲明 function 時,它在被調用之前不會執行(對於在 onload 和其他事件中聲明的那些也是如此)。

對於嵌套函數,當調用頂層 function 直到包含 function 調用它們時,它們不會自動執行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM