当前位置: 代码迷 >> 综合 >> js_lesson_4——预编译
  详细解决方案

js_lesson_4——预编译

热度:50   发布时间:2024-01-28 15:33:29.0
<!DOCTYPE html>
<html>
<head><title></title>
</head>
<body><script type="text/javascript">// 递归:1.找规律  2.找出口// js执行三部曲 1.语法分析 2.预编译 3.解释执行// 1. 函数声明整体提升  2.变量 声明提升// console.log(a);// function a(){// 	var a = 234;// 	var a = function(){// 	}// 	a();// }// var a = 124;// 1. imply global 暗示全局变量:任何变量,如果变量未经声明就赋值,此变量就为全局对象所有(window)// 2. 一切声明的全局变量,全都是window的属性// window就是全局的域// 预编译,发生在函数执行的前一刻// 1. 创建AO对象 Activation Object// 2. 找形参和变量声明,将变量和形参名作为AO的属性名,值为undefined// 3. 将形参和实参统一// 4. 找函数体里的函数声明,值赋予函数体// eg1.// function fn(a){// 	console.log(a);// 	var a = 123;// 	console.log(a);// 	function a(){}// 	console.log(a);// 	var b = function(){}// 	console.log(b);// 	function d(){};				// }	// fn(1);	// eg2.// function test(a,b){// 	console.log(a);// 	c = 0;// 	var c;// 	a = 3;// 	b = 2;// 	console.log(b);// 	function b(){}// 	function d(){}// 	console.log(b);// }// test(1);// eg3.// function test(a,b){// 	console.log(a);// 	console.log(b);// 	var b = 234;// 	console.log(b);// 	a = 123;// 	console.log(a);// 	function a(){}// 	var a;// 	b = 234;// 	var b = function(){}// 	console.log(a);// 	console.log(b);// }// test(1);// eg4.// global = 100;// function fn(){// 	console.log(global);// 	global = 200;// 	console.log(global);// 	var global = 300;		// }// fn();// var global;// eg5.// function test(){// 	console.log(b);// 	if(a){// 		var b = 123;// 	}// 	console.log(b);// 	c = 234;// 	console.log(c);// }// var a;// test();// a = 10;// console.log(c);// test1.// function bar(){// 	return foo;// 	foo = 10;// 	function foo(){}// 	var foo = 11;// }// console.log(bar());// test2.// console.log(bar());// function bar(){// 	foo = 10;// 	function foo(){}// 	var foo = 11;// 	return foo;// }// console.log(typeof(a)); //undefined// console.log(typeof(null));  //object// console.log(typeof(+undefined)); //number// console.log(11 + "11" * 2) //33			</script>
</body>
</html>

 

  相关解决方案