日期:2014-05-16  浏览次数:20431 次

js 预编译的过程


alert(a);   //function a(){}


function a(){} 


var a;


这个alert(a)的结果可能有些出乎意料,关键在于预编译的过程 


var 关键字预编译 如果该变量没有值则 undefined 有则 当前值



function 关键字预编译成 函数表达式  函数中变量也预编译成 undefined


再看下一题


alert(a); //undefined


a(); //error


var a = function(){alert(1)}


a(); //1



这里a的结果显示了在预编译过程中用 function 和 var  定义函数的区别