JavaScript 预编译与解释执行

JavaScript 预编译与解释执行  

      JavaScript在装载时的执行顺序是根据脚本标签<script>的出现的顺序来确定的。但其在解释执行前,会

对JavaScript进行一次“预编译”,在预编译的过程中,将那些用var声明的变量设置为活动对象的属性

认值为“undefined”,并且将那些以function定义的函数也添加为活动对象的属性,而且他们的值正

函数的定义,匿名函数将不被解析变量初始化过程即赋值过程发生在解释执行期,而不是编译期

范例1:

<script type='text/javascript'>

test();
function test()
{

    alert('a');

}
</script>

 

以上代码能被正确执行。因为在预编译时,test函数的值已被定义
范例2、
<script type='text/javascript'>
test();

var test=function()
{
 alert('a');
}
</script> 

 

原因是var变量a在预编译时只被声明,并未赋值,故出现错误提示。

范例3、

<script type='text/javascript'>
alert(a);
var a=1;
</script>

 

结果提示undefined,因为var声明的变量在预编译时,默认值为undefined

 

posted @ 2014-08-19 09:11  feimon  阅读(154)  评论(0)    收藏  举报