逻辑运算符 Javascript &&



当我运行此代码时,首先显示 1,然后未定义。但我还是无法理解。

alert(alert(1) && alert(2));

这里有一些解释:

对警报的调用返回未定义(它只显示一条消息,因此没有有意义的返回(。

因此,&&计算左操作数(输出 1(,并立即停止,因为 undefined 是一个虚假值。&&查找一个虚假值并返回它,所以它就完成了。

警报不返回任何内容

所以alert(1)运行,因为警报不返回任何未定义的内容。因此,您alert(undefined && alert(2)).alert(2)不会执行,因为左侧部分需要真实才能执行。未定义是假的。这计算结果为alert(undefined).

因此,对于第一个警报,您得到的警报为 1,而外部警报未定义,并且警报 (2( 永远不会执行。

以不那么混乱的方式编写的代码

var action = alert(1) && alert(2) // only runs alert(1)
console.log(action) // shows variable is undefined
alert(action) // alerts undefined

最新更新