stairheaven 2013-05-21 23:18
浏览 303
已采纳

javascript 局部变量输出undefined?

请问下面的函数 a 输出什么? 为什么是这个值?
[code="java"]var i = 3;
function a(){
alert("i = " + i);
var i = 5;

}
a();[/code]

  • 写回答

4条回答 默认 最新

  • jinnianshilongnian 2013-05-22 07:37
    关注

    var i = 3;
    function a(){
    alert("i = " + i);
    var i = 5;

    }
    a();

    因为javascript的变量提前声明特性 即如上代码等价于

    var i = 3;
    function a(){
    var i;
    alert("i = " + i); //此时就是undefined了
    i = 5;

    }
    a();

    说白了 变量声明都会在函数开头完成 不管你怎么写的

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?