javascript学习笔记------预编译期和执行期
JavaScript在装载时的执行顺序是根据脚本标签<script>的出现的顺序来确定的。
但其在解释执行前,会对JavaScript进行一次“预编译”,在预编译的过程中,将那些用var声明的变量设置
为活动对象的属性,默认值为“undefined”,并且将那些以function定义的函数也添加为活动对象的
属性,而且他们的值正是函数的定义,匿名函数将不被解析。
变量初始化过程即赋值过程发生在解释执行期,而不是编译期。
示例1:
<script type='text/javascript'>
test();
function test()
{
alert('a');
}
</script>
示例2:
<script type='text/javascript'>
test();//非正常输出。 未定义值
var test=function()
{
alert('a');
}
</script>
示例3:
<script type='text/javascript'>
alert(a);//输出 underfined
var a=1;
</script>