js_lesson_4——预编译

<!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>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值