我在JavaScript教程中找到了这段代码。如果value为null,则读取this.current分配给0,否则分配给值。它是如何工作的?
我很困惑,因为没有null
或??代码中的运算符。
this.current=value||0;
答案 0 :(得分:2)
嗯,||
(逻辑或)运算符的语义是这样的,只要它的左侧是 truthy ,它就会短路并返回该值,否则返回什么在右边。
该公共模式通过将可能的 falsy (x)值和默认(y)传递给运算符x || y
来利用语义。如果x证明是非虚假的,则整个表达式的计算结果为x
,否则为y
。
Null
,因为null
是 falsy ,并且该模式适用于所有虚假值。
答案 1 :(得分:1)
这是javascript中的运算符||
的工作原理。它不是返回一个布尔值,而是返回任一操作数,具体取决于它们是否为真。
如果第一个操作数是“true”值,它直接返回其值而不查看另一个操作数,否则它只返回另一个操作数的值。
答案 2 :(得分:1)
很简单,在右侧你有value || 0
评估为this.current
。您需要了解的是,右侧首先评估布尔值OR
。这就是JS ||
应该如何工作的方式。如果它们不是布尔值,则返回值而不是TRUE/FALSE
。
答案 3 :(得分:-5)
如果使用===比较某些东西,它会比较值和类型。例如
var a = false;
If(a == null){
//triggered
}
If(a === null){
//not works
}