题目

function a() {
    alert(1);
}
alert(a());

执行结果

先弹出“1”,然后弹出“undefined”。

解析

先执行了函数a,弹出了“1”。然后执行到外层的alert,函数a是没有任何返回值的,所以alert(a())等同于alert(undefined)。所以第二次弹出了“undefined”。

拓展

讲题目稍稍修改一下:

function a() {
    alert(1);
    return 2;
}
alert(a());

依据上述同等分析,所以执行结果将会是先弹出“1”,然后弹出“2”。