JS中的函数提升及变量提升

来源:互联网 发布:手机游戏源码论坛 编辑:程序博客网 时间:2024/05/17 21:51

对于变量提升:
当变量前面没有var时,不存在提升
当变量前面有var时,才存在提升

<script type="text/javascript">function test8(){    alert(a);    var a="hello world";}test8();//undefinedalert("执行了......");//这句话执行了</script>
<script type="text/javascript">function test9(){    alert(a);    a="hello world";}test9();//出错alert("未执行......");//这句话未执行</script>

对于函数提升:
<1> 只有函数声明才会进行函数提升,函数表达式不存在提升.

<2> 函数提升会将函数体一起提升上去,这点与变量提升有所不同

//函数声明foo() // 调用成功function foo() {}
//函数表达式foo()  // 有foo这个变量,但它却不是函数,所以调用失败var foo = function() {}

函数的提升大于变量的提升

0 0