js执行的三步:语法检查,预编译,解释执行.
js预编译前:window对象==全局
1.任何位置上的变量未声明直接赋值是全局变量,发到window里
2.在函数外声明的变量也是全局,放到window里.
js预编译时:对函数来说
1.生成函数的AO对象(作用域)
2.把函数的形参和变量声明放到AO对象中,作为属性
3.形参和实参相对应(实参的值传给形参)
4.把函数声明的函数名放到AO对象里,作为属性
js预编译结束后,进行解释执行,执行时,变量和函数的声明不执行
原文地址:https://www.cnblogs.com/fangming/p/8848228.html
时间: 2024-10-14 10:09:46