或运算和 alerts 的结果是什么?
重要程度: 3
下面的代码将会输出什么?
alert( alert(1) || 2 || alert(3) );
答案:首先是 1,然后是 2。
alert( alert(1) || 2 || alert(3) );
对 alert 的调用没有返回值。或者说返回的是 undefined。
- 第一个或运算
||对它的左值alert(1)进行了计算。这就显示了第一条信息1。 - 函数
alert返回了undefined,所以或运算继续检查第二个操作数以寻找真值。 - 第二个操作数
2是真值,所以执行就中断了。2被返回,并且被外层的 alert 显示。
这里不会显示 3,因为运算没有抵达 alert(3)。