回到课程

或运算和 alerts 的结果是什么?

重要程度: 3

下面的代码将会输出什么?

alert( alert(1) || 2 || alert(3) );

答案:首先是 1,然后是 2

alert( alert(1) || 2 || alert(3) );

alert 的调用没有返回值。或者说返回的是 undefined

  1. 第一个或运算 || 对它的左值 alert(1) 进行了计算。这就显示了第一条 1 的信息。
  2. 函数 alert 返回了 undefined,所以或运算继续检查第二个操作数,寻找真值。
  3. 第二个操作数 2 是真值,所以执行就中断了。2 被返回,并且被外层的 alert 显示。

不会显示 3,因为运算没有抵达 alert(3)