【发布时间】:2015-11-18 21:25:29
【问题描述】:
我继承了一些具有这一行的javascript:
var vehicle = data.vehicles && data.vehicles.length > 0 && data.vehicles[0];
这将返回 data.vehicles[0] 对象,不是真或假。为什么?
【问题讨论】:
-
你为什么期望它返回一个布尔值?
-
JavaScript 中的
&&运算符的工作方式与其他语言中的类似运算符明显不同。 -
请与我们分享您的变量值
-
如果您希望语句返回布尔值,可以使用
var vehicle = data.vehicles && data.vehicles.length > 0 && !!data.vehicles[0]; -
或
var vehicle = !! (data.vehicles && data.vehicles.length > 0 && data.vehicles[0]);,但很少需要这样做。
标签: javascript