代码加载后JS引擎会编译嵌套函数声明吗?

时间:2018-02-25 09:05:07

标签: javascript javascript-engine

我们知道JavaScript引擎实际上会在解释之前编译JavaScript代码。因此,在执行代码的任何部分之前,首先处理函数(变量)。它被称为"吊装"。

我想了解加载js代码的时候js引擎只会在全局范围内编译函数声明还是嵌套?

1 个答案:

答案 0 :(得分:0)

坦率地说这是JS引擎内部,javascript规范并没有规定在加载文件时是否也编译了函数。

但回答一般来说,JS引擎在调用函数之前不会编译函数内部,因为对于JS引擎而言,初始编译/加载时间很小是很重要的。

在第一次传递/编译中,所有引擎都很有意思,就是查找变量和函数,因为,函数创建了一个闭包,它对函数内部的东西不感兴趣,直到函数被调用。

所以为了回答你的问题,引擎通常只编译当前作用域中的函数,它可以是全局作用域或其他函数作用域,并且它不编译嵌套函数