JavaScript-预编译

JavaScript-预编译,第1张

预编译 预编译阶段:作用域的创建阶段
function fn(a,c){
	console.log(a);
	var a = 123; 
	console.log(a);
	console.log(c); 
	function a(){};
	if(false){
		var d = 678;
	}
	console.log(d); 
	console.log(b);
	var b = function(){};
	console.log(b);
	function c(){};
	console.log(c);
}
fn(1,2);
预编译阶段所经历的过程: 创建AO对象;(AO对象:供JS引擎访问)找形参和变量的声明(作为AO对象的属性名,值是undefined);实参和形参相统一;找函数声明(会覆盖变量的声明)。 AO对象状态:
变量名步骤2步骤3步骤4
aundefined1function a(){}
cundefiend2function c(){}
bundefined
dundefined
运行结果:

function a(){}
123
function c(){}
undefined
undefined
function (){}
function c(){}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1323223.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-12
下一篇 2022-06-12

发表评论

登录后才能评论

评论列表(0条)

保存