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