【发布时间】:2021-07-15 10:33:45
【问题描述】:
让我们举个例子
function main (x) {
return x
}
function second() {
console.log("hello ")
}
js 编译器知道所有函数声明,所以我可以在 main 内调用 second
main(second())
关于递归函数,我不明白的是如何在函数声明中调用相同的函数
function factorial(n) {
if (n ===1) {
return 1;
} else {
return n * factorial(n-1);
}
}
我的思考过程是:好的,这是函数声明,这是函数的作用,但如何
即使声明没有完成,我可以调用相同的函数吗
【问题讨论】:
-
Javascript 不是经典意义上的解释,它不会逐行执行您的代码。
-
编译器 !== 解释这些是不同的东西,工作方式不同,所以要小心你的语言
-
调用堆栈?有一个很好的可视化felixgerschau.com/javascript-event-loop-call-stack
标签: javascript function recursion callstack