解释执行代码(直到执行调用函数foo(20)语句)
GO/window = { a: 10, c: function (){ console.log("I at C function"); } test: function(a) { console.log(a); var a = 123; console.log(a); function a() {} console.log(a); var b = function() {} console.log(b); function d() {} } }调用函数foo(20)前发生布局预编译 // 局部预编译前两步: AO = { a:undefined, b:undefined, } // 局部预编译第三步: AO = { a:20, b:undefined, } // 局部预编译第四步: AO = { a:function a() {}, b:undefined d:function d() {} }预编译总结:
- 函数声明整体提升-(具体点说,无论函数调用和声明的位置是前是后,系统总会把函数声明移到调用前面)
- 变量 声明提升-(具体点说,无论变量调用和声明的位置是前是后,系统总会把声明移到调用前,注意仅仅只是声明,所以值是undefined)
var num3 = 10; function func3(){ console.log(num3); var num3 = 20; } func3(); console.log(num3); /* // 全局编译 GO{ num3:undefined, func3: function (){ console.log(num3); var num3 = 20; } // 全局执行 var num3 = 10; GO{ num3:10, func3: function (){ console.log(num3); var num3 = 20; } // 局部编译 func3.AO{ num3:undefined, } // 局部执行 func3.AO{ num3:20, } // 全局执行 GO.num3 = 10 } */
经验总结扩展阅读
- 唐朝李镇宗是怎么死的 李镇宗简介
- JavaScript for循环的终止问题
- JavaScript常用工具函数
- Django的简单使用
- 1.docker的基本使用
- 1.python基础使用
- 除夕别称是什么 除夕的风俗有哪些 简介
- 口红哪种牌子比较好用?荷兰口红品牌排行榜简介
- 王者男陪玩简介 王者荣耀陪玩简介怎么写吸引人
- 王者陪玩简介幽默 王者荣耀女陪玩介绍怎么说
