返回课程

多个警报 OR 运算的结果是什么?

重要性:3

以下代码将输出什么?

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

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

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

alert 的调用不返回值。或者换句话说,它返回 undefined

  1. 第一个 OR || 运算符会评估其左操作数 alert(1)。这会显示第一个带有 1 的消息。
  2. alert 返回 undefined,因此 OR 运算符会继续到第二个操作数,寻找一个真值。
  3. 第二个操作数 2 为真值,因此执行停止,2 被返回,然后由外部 alert 显示。

不会出现 3,因为评估没有到达 alert(3)