[英]Logical AND (&&) and OR (||) operators
逻辑AND( &&
)和OR( ||
)运算符---谁知道他们可以欺骗我们这样:)
对于JS(根据此解释),他们的定义如下:
expr1 && expr2 =>如果可以转换为false,则返回expr1; 否则,返回expr2。 因此,当与布尔值一起使用时,如果两个操作数都为真,则&&返回true; 否则,返回false。
expr1 || expr2 =>如果可以转换为true,则返回expr1; 否则,返回expr2。 因此,当与布尔值一起使用时,|| 如果任一操作数为true,则返回true; 如果两者都为假,则返回false。
测试它,确实它的工作方式与定义一样,但问题在于:
false || "" //returns ""
"" || false //returns false
所以,显然:
(false || "") == ("" || false) // true
但是,可悲的是
(false || "") === ("" || false) // false
主要有两个问题:
==
运算符或在使用&&
和||
时注意顺序 运营商? true
("" || false)
? 我的意思是,是不是像使用NOT( !
)运算符前置""
一样简单? 这就是他们的工作方式。 这不是一个错误:
如果可以转换为false,则返回expr1; 否则,返回expr2
这意味着您可以使用“默认值”,如下所示:
function someFunc(passedParameter){
var newValue = passedParameter || 1337
}
或者在满足条件时运行函数:
var myBool = true;
myBool && someFunc(); // someFunc will only be evaluated if `myBool` is truthy
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.