功能被提升。 fun1 调用 fun2。他们以什么顺序申报?
function is hoisted. fun1 called fun2. in what order are they declare?
我想知道函数在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 关键字声明的所有函数,无论在何处,只要它们在其调用者可访问的范围内,都可以在文件中的任何位置使用。
在您的特定示例中,您在调用其中任何一个之前在文件顶部定义了两个函数 - 因此您的代码无论如何都会工作。
在这两个例子中都没有发生任何可见的提升,因为声明的函数已经在块的顶部。在您调用 ex2
时,两个函数都已声明,这就是没有错误的原因。即使您在函数声明之前调用 ex2
,由于提升,代码仍然可以工作。
我想知道函数在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 关键字声明的所有函数,无论在何处,只要它们在其调用者可访问的范围内,都可以在文件中的任何位置使用。
在您的特定示例中,您在调用其中任何一个之前在文件顶部定义了两个函数 - 因此您的代码无论如何都会工作。
在这两个例子中都没有发生任何可见的提升,因为声明的函数已经在块的顶部。在您调用 ex2
时,两个函数都已声明,这就是没有错误的原因。即使您在函数声明之前调用 ex2
,由于提升,代码仍然可以工作。