我看到这个结构是为了得到浏览器的视口宽度:为什么Javascript的OR返回的值不是true/false?
function() { return window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; }
我理解所涉及的浏览器怪癖。我不明白的是为什么||
返回值。所以我尝试了这个alert(undefined || 0 || 3);
,果然,它会警告3
。我觉得这很离奇,因为我期待true
或false
。谁能解释一下发生了什么?
是否'警报(未定义&& 0 && 3)''返回0'? – 2010-06-03 13:38:13
@Rising Star:为什么问OP,你可以自己动手吗?...另外,对我而言,它返回'undefined'。 – Matchu 2010-06-03 13:39:34
供参考:如果你想要一个真值,做'!!(undefined || 0 || 3)' – Matt 2010-06-03 14:03:51