在最近的一次面试中,我遇到了一个有趣的观点。
用Java语言进行提升是关于将变量声明和函数声明移到脚本顶部。我们可以将此阶段称为编译阶段吗?
我知道以下事实:Javascript解释器在输入脚本上有2个传递,在第一个传递中它会提升,而在第二个传递中它实际上会执行脚本。知道Javascript是一种解释语言后,这个问题使我有些困惑。
在最近的一次面试中,我遇到了一个有趣的观点。
用Java语言进行提升是关于将变量声明和函数声明移到脚本顶部。我们可以将此阶段称为编译阶段吗?
我知道以下事实:Javascript解释器在输入脚本上有2个传递,在第一个传递中它会提升,而在第二个传递中它实际上会执行脚本。知道Javascript是一种解释语言后,这个问题使我有些困惑。
Answers:
不。吊装不是编译。
提升是开发人员创建的一个概念,用于解释在将变量和函数声明移至其包含范围的顶部时在编译期间发生的情况。
编译是将Javascript代码转换为现在或以后执行的其他表示形式(通常是某种可执行代码)时发生的情况。Chrome的V8 Javascript引擎实际上有两个编译器。一个可以立即创建快速且肮脏的可执行代码,另一个可以稍后创建优化的代码。
编程语言没有定义为“编译”或“解释”语言。而是根据需要解释或编译语言。
使用Javascript 进一步阅读
V8引擎的工作原理