【发布时间】:2014-02-11 22:54:08
【问题描述】:
在浏览我在网上找到的一些代码时,我发现了这段特殊的代码行(Javascript):
function values(b) {
this.b = b || 0;
}
我根本无法弄清楚||0 的用途。如果我没记错的话,因为|| 返回一个布尔值,所以这个值,b 将始终是参数的布尔等效值。如果b 作为true 传递(即1 或true),那么b 应该为true;否则,使用false 值之一(即NaN、0),这应该是错误的。然后我将其解释为:
b 是true:
this.b = true || false; // will evaluate to true
b 是false:
this.b = false || false; // will evaluate to false
我只是看不到通过添加||0 获得的价值。有人可以向我解释一下吗?
【问题讨论】:
-
||如果左边是假的,而不是布尔值,则返回右边的表达式,除非布尔表达式恰好在“||”的右边...它将 null、undefined、""、false 等变为零。
-
在这种情况下,它被用作默认值。当你调用
new values()而不带b参数时,它会将b设置为0。相关programmers.stackexchange.com/q/203469/56971 -
如果
b是一个假值,this.b将被设置为0。
标签: javascript