【发布时间】:2011-07-22 00:54:10
【问题描述】:
为什么这些逻辑运算符返回一个对象而不是布尔值?
var _ = (obj.fn && obj.fn() ) || obj._ || ( obj._ = {} );
var _ = obj && obj._;
我想了解为什么它返回 obj.fn()(如果已定义)或 obj._ 的结果而不是布尔结果。
【问题讨论】:
-
我想他想知道为什么
a || b不返回布尔值而是a或b。 -
var _ = obj && obj._;不返回布尔值吗? O.o / 那它返回什么?第一个评估为假 evt。如果一切都为真,最后一个真? -
盗贼大师,这正是我的意思。我更新了我的帖子
-
@theateist 这就是
&&和||在 JavaScript 中的工作方式。它们返回参数而不是布尔值。 .... 你为什么问?因为 Brendan Eich 是这么说的!
标签: javascript logical-operators