【发布时间】:2016-11-30 13:22:53
【问题描述】:
r 等于什么?为什么?
换句话说,布尔运算符如何处理对象?
var data = {x:123, y:456};
var r = data && data.x || 0;
更新:
当我运行它时r 总是等于x,但我不明白为什么。
【问题讨论】:
-
r的值将是(data.x如果data是truthy)或0 -
在您尝试运行此程序后,
r是什么? -
我从未见过
&&和||的这种组合。我通常将其视为var r = data ? data.x : 0;(字符较少,可能不会那么混乱)。 -
@RocketHazmat 如果
123是假的而0不是假的,则行为略有不同。 -
@RocketHazmat,这并不完全等同。它必须是
var r = data ? (data.x ? data.x : 0) : 0
标签: javascript oop