JavaScript中的代码究竟是如何执行的?我的意思是按什么顺序?如果我声明了这样的函数,那么执行顺序是否会有所不同:
function render() {
// Code here
}
而不是:
var render = new function(){
// Same code here
}
JavaScript是否执行脚本文件中定义的函数,无论它们是否被事件处理程序调用? (例如onload=function()
)。
最后如果在另一个函数中定义了一个函数,当调用父函数时,是否也调用了较低的函数? e.g。
function a(){
function b(){
// code
}
function c(){
//code
}
}
我正在尝试对JavaScript中的执行顺序有一个具体的了解。
答案 0 :(得分:4)
一个函数声明被提升(因此可以在代码中更早地调用它然后定义),而函数声明则不是。
JavaScript是否执行脚本文件中定义的函数,无论它们是否被事件处理程序调用?
调用函数时会调用它。要么因为theFunction
后跟()
(可能带有参数),要么因为它已成为事件处理程序。
onload="function"
如果是JS,那么它会为期望函数的东西分配一个字符串。如果是HTML,那么您需要()
来调用该函数。
最后如果在另一个函数中定义了一个函数,当调用父函数时,是否也调用了较低的函数?
没有。只有在调用函数时才会调用该函数。在另一个函数中声明一个函数只会限制其范围。
答案 1 :(得分:3)
var render = new function(){
// same code here
}
new
关键字不会创建新的功能。它通过运行该函数创建一个新对象。所以这实际上会运行方法的主体并返回一个对象。
如果询问函数何时被解析并添加到作用域,那么这是特定于实现的,但所有函数都被提升到作用域的顶部,并且通常在执行任何代码之前进行解析。
当您通过调用f()
答案 2 :(得分:0)
当你声明一个函数时,它在被调用之前不会被执行(对于在onload和其他事件中声明的函数也是如此)。
对于嵌套函数,当调用顶级函数时,它们不会自动执行.UNTIL包含函数调用它们。