js学习笔记- 05 - 预编译

1.js运行三部曲

语法分析、预编译、解释执行

2.预编译(函数声明整体提升,变量声明提升)

test(); //  123

function test() { console.log(123)}

-------------------------------------------

function test() { console.log(123)}

test(); //  123

-------------------------------------------

var a = 123;

console.log(a);  // 123

--------------------------------------------

console.log(a);  // undefined

var a = 123;

---------------------------------------------

console.log(a);   // 报错

---------------------------------------------

3. 预编译前奏

  • imply global暗示全局变量:即任何变量,如果变量未经声明就赋值,此变量就为全局对象所有。
  • 一切声明的全局变量,全是window的属性

4.预编译四部曲

  • 创建AO对象,  全局GO
  • 找形参和变量声明,将变量和形参名作为AO属性名,值为undefined
  • 将实参和形参统一
  • 在函数体内找函数声明,值赋予函数体



猜你喜欢

转载自blog.csdn.net/qq_25131799/article/details/80006310