我最近在读《JavaScript权威指南》。在第76页,有这样一句话,
o && o.x // => 1: o is truthy, so return value of o.x
作为一名Java程序员,我想问一下,为什么它返回的是数字1而不是
'true'
。在Java中,这种情况并不会发生,但无论如何我知道JavaScript是有所不同的,但逻辑AND机制在任何地方都是相同的。(在C语言中它会返回数字1作为true。) 我的问题是,这种行为有什么意义吗?是否有任何方法可以确保只返回true或false值?
!!(o && o.x)
。 - Arun P Johny