javascript - 功能被提升。 fun1 调用 fun2。他们以什么顺序声明?

标签 javascript function hoisting

我想知道函数在 javascript 中声明的顺序。

function ex1() {
  document.write("ex1")
}

function ex2() {
  ex1();
}
ex2();
//result is ex1.
function ex2() {
  ex1();
}

function ex1() {
  document.write("ex1")
}
ex2();
//result is ex1.

如果更改顺序,我预计会发生错误。 我知道js使用提升。但在顶部,我认为它会按顺序声明。 该函数是如何调用的?

最佳答案

JavaScript 首先读取文件,特别是查找 function 关键字,并存储这些函数及其作用域,然后调用代码。使用 function 关键字声明的所有函数,无论在何处,只要它们位于调用者可访问的范围内,就可以在文件中的任何位置使用。

在您的具体示例中,您在调用其中一个函数之前在文件顶部定义这两个函数 - 因此您的代码无论如何都可以工作。

关于javascript - 功能被提升。 fun1 调用 fun2。他们以什么顺序声明?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57767332/

相关文章:

javascript - 在html中打印javascript数组

javascript - 调整大小功能无法正常工作

python - 递归分数(python)

c++ - for循环内的if语句未执行

c++ - 在 C++ 函数中创建新对象导致程序崩溃

javascript - 在 QML 中创建一个新的 javascript 对象

javascript - 创建二维数组时赋值

javascript - 如何解释下面的例子?吊装?

javascript - 为什么回调函数没有在 JavaScript 中提升?

函数混淆中的javascript变量范围