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条)

报告相同问题?

悬赏问题

  • ¥15 spring后端vue前端
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题
  • ¥20 求一个html代码,有偿