js预编译。

1、js运行三部曲

语法分析 预编译 执行

2、预编译过程

GO: global Object

1、创建GO对象
2、找变量声明,值赋undefined
3、找函数声明,值赋函数体
4、执行

AO-: activity Object 执行期上下文

1、创建AO对象
2、找形参和变量声明,值赋undefined
3、形参与实参相统一
4、找函数声明,值赋函数体
5、执行

练习1

 			/* GO{
				C:undefined   10
				test:function test(){}
			}
			AO{
				b:undefined  1   2
			} */

			console.log(c);  //undefined
			var c = 10;
			console.log(c); //10
			function test(b) {
				b = b + 1;
				console.log(b);  //2
			}
			test(1);

在这里插入图片描述
练习2

/* AO(执行期上下文)预编译过程
			  1、AO对象
			  2、找形参和变量声明,值赋undefine
			  3、将实参和形参统一
			  4、找函数声明,值赋函数体
			  5、执行 */
			/* AO{
				a:undefined  1 function a() {} 123
				b:undefined  function() {}
				d:function d(){}	
			} */
			test2(1);
			function test2(a) {
				console.log(a); //function a() {} 
				var a = 123;
				console.log(a);  //123
				function a() {};
				console.log(a);  //123
				var b = function() {}
				console.log(b);  //function() {}
				function d() {}
				console.log(d);  //function d(){}
			}

在这里插入图片描述
练习3

/* AO{
			a:undefined  1  function a() {}  123
			b:undefined  234  function() {}
		}	 */	
			test3(1);
			function test3(a, b) {
				console.log(a); //function a() {}
				console.log(b); //undefined
				var b = 234;
				console.log(b); //234
				a = 123;
				console.log(a);  //123
				function a() {};
				var a;
				var b = function() {};
				console.log(a);  //123
				console.log(b);  //function() {}
			}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值