var a = 10; alert(a); alert(a); //在很多的其他语言中,变量需要先申明再使用,但是在js中我们可以先使用再申明(虽然这里的结果不是10,是undefined) var a = 10; //在js中,js解析器会对我们的代码做一些初始化分析的工作,其他包含了这么一项内容,解析器会把程序中变量的申明在程序代码执行之前做一个初始化, 解析器会把变量的申明提前处理,上面的先调用,后申明其实也可以是下面这样 //var a; //只是申明提前,赋值不会 //alert(a); //a = 10; //上面这个就叫做:变量预解析