逻辑和运算符(&&)或逻辑或运算符(||)在“ if子句”中是否具有与短路逻辑中相同的功能?
例如,短路的&&应该返回第一个虚假值,否则,如果没有找到,则返回最后一个值:例如0 && 1
返回1。但是,如果是这样,它如何在if子句中工作?
if (false && 1)
不会运行是因为两个条件都不成立,但是短路似乎表明它将返回1,在这种情况下1是真实值,并且if子句应该通过?
编辑:我的错误,我混淆了&&和||在短路。它们与条件句的作用相同
答案 0 :(得分:2)
f(thing, n);
短路时应返回第一个假值,否则将返回最后一个值
正确。
例如
&&
返回0 && 1
不。 1
返回第一个虚假值0 && 1
。
0
无法运行,因为两个条件都不成立
正确。 if (false && 1)
返回第一个虚假值false && 1
。由于false
为假,因此if语句不会运行。
但是短路似乎表明它将返回1,在这种情况下1是真实值,而if子句应该通过?
不。如您所说,它返回第一个虚假值false
。后面任何条款的价值都无关紧要:false
的效果也一样。
答案 1 :(得分:0)
短路逻辑与if陈述逻辑的工作原理相同–确实没有区别,它们只是有条件的:
console.log(0 && 1);
if (0 && 1) console.log("0 && 1");
console.log(false && 1);
if (false && 1) console.log("false && 1");