pengpai123 2017-03-05 12:11 采纳率: 0%
浏览 1262

请问最后的输出结果为啥是undefined啊??

var tmp = new Date();

function f() {
console.log(tmp);
if (false) {
var tmp = "hello world";
}
}

f(); // undefined

  • 写回答

3条回答 默认 最新

  • v逆水行舟v 2017-03-05 13:05
    关注

    因为if没有块级作用域,因此在if中的var tmp变量提升,实质上你写的代码被转换成这样的:
    var tmp = new Date();
    function f() {
    var tmp;
    console.log(tmp);
    if (false) {
    tmp = "hello world";
    }
    }
    f(); // undefined
    tmp没有被赋值,因此是undefined

    评论

报告相同问题?

悬赏问题

  • ¥20 有偿 写代码 要用特定的软件anaconda 里的jvpyter 用python3写
  • ¥20 cad图纸,chx-3六轴码垛机器人
  • ¥15 移动摄像头专网需要解vlan
  • ¥20 access多表提取相同字段数据并合并
  • ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角
  • ¥20 Java-Oj-桌布的计算
  • ¥15 powerbuilder中的datawindow数据整合到新的DataWindow
  • ¥20 有人知道这种图怎么画吗?
  • ¥15 pyqt6如何引用qrc文件加载里面的的资源
  • ¥15 安卓JNI项目使用lua上的问题