繁体   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