您的位置:首页 > Web前端 > JavaScript

javascript预编译原理和例子

2016-07-22 11:23 288 查看
先看代码:

<script>
alert( typeof vv);
var vv= "variable" ;
function vv() {
alert( "function vv" );
}
alert(vv);
</script>


执行结果是”function”和”variable”。

照理说,一开始,vv有变量声明,有vv函数的函数声明,但vv的函数声明覆盖了变量声明,所以typeof vv为 function.

然后vv被赋值为”variable”。所以,后面一个alert(vv)的结果为:variable。

但当上面的代码变为:

<script>
alert( typeof vv);
function vv() {
alert( "function vv" );
}
var vv= "variable" ;
alert(vv);
</script>


执行结果也一样,这就有蹊跷了!!!说明了,JS解析器是:先预声明变量,再预定义函数 的。

小结一下:JS 在执行前会进行类似”预编译”的操作,而且先预定义变量再预定义函数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息