JavaScript语言运行的过程分为三步:语法分析、预编译、解释执行。浏览很多博客发现,在很多面试中JavaScript的预编译过程总是会被作为一个考点,现在大致总结如下,以后补充。
1.变量提升:变量提升在预编译过程中是一个十分重要的知识点,其中包括:函数声明整体提升和变量声明提升。指的是函数里所有的声明都会被提到函数的顶部。
2.函数声明:
3.变量赋值:
4.预编译过程:
(1).创建AO activation object(执行期上下文对象)
(2).找形参和变量声明,将变量和形参作为AO属性名,值为undefined
(3).将实参值和形参统一
(4).在函数体里面找函数声明,值赋予函数体
5.实例:
(1)
console:
AO:
(2)
console:
AO: