一、|| 和 &&
它们的返回值是两个操作数中的一个(且仅一个)。即选择两个操作数中的一个,然后返回它的值。
![](https://i-blog.csdnimg.cn/blog_migrate/fb6b26f0dd938ca1031c5efb366b8bff.png)
之所以说大致相当,是因为它们返回结果虽然相同但是却有一个细微的差别。在 a ? a : b
中,如果
a
是一个复杂一些的表达式(比如有副作用的函数调用等),它有可能被执行两次(如果第一次结果为真)。而在 a || b
中
a
只执行一次,其结果用于条件判断 和返回结果(如果适用的话)。
![](https://i-blog.csdnimg.cn/blog_migrate/4ca01ef378a46a989f8e07b026db3ed2.png)
二、== 和 ===
== 允许在相等比较中进行强制类型转换,而 === 不允许。