1、任何变量,如果没有声明就赋值,此变量就为全局对象所有
2、一切声明的全局变量,全是window的属性
3、在预编译中if中的函数不会提升
第一步:
创建GO或者AO
第二部:
找形参和变量声明,将变量和形参名作为GO或AO的属性名,值为undefined
第三步:
将实参值和形参统一
第四步:
在函数体里面找函数声明,值赋予函数体
示例1
console.log(f)
var f = 123;
function f(){console.log(456)}
解析过程:
var f;
function f(){console.log(456)} // 函数整体提升
console.log(f) // function f(){console.log(456)}
f = 123;
示例2
console.log(f)
function f(){console.log(456)}
var f = 123;
解析过程:
function f(){console.log(456)} // 函数整体提升
var f;
console.log(f) // function f(){console.log(456)}
f = 123;
