js预编译
一. JS中的"预编译"是指什么?JS会把var和function这两个声明关键字提前解释一下,以告诉浏览器有多少个变量和方法被声明, 而变里的赋值是在执行时完成的, 对于一个变量声明, 其过程如下:
var x=1;在预编译阶段, 他等价于var x;以便告诉浏览器这里有个变量, 但不会去执行赋值语句.
只有在预编译完成后, 真正解释执行当前代码时, 才会执行x=1;部分.
二. 示例:
<script type="text/javascript">//<!]></script>
这个例子的输出结果应该是: NaN, 2.其原因为: 由于show函数会被预编译, 对于JS引擎而言, 其相当于,
function show() { var a; alert(a * 2); //
此时a的值为undefined, 故输出NaN
a = 2; alert(a * 1);
// 此时a的值为2, 故输出2}
页:
[1]