怎么能jquery || " OR"在if语句之外使用?

时间:2014-04-27 03:07:30

标签: javascript jquery symbols

我从未见过OR参数||在if语句之外使用。

这行代码有什么作用?

var doc = ($iframe[0].contentWindow || $iframe[0].contentDocument).document

是否说它等于其中任何一个???

3 个答案:

答案 0 :(得分:4)

A || B

首先评估A.如果是,则返回A,并且永远不需要查看B. 如果A为假,则评估并返回B.

例如,如果你写

function (x)
{ x = x || 50
...

如果x为nil(或某种假值),这将使x = 50。 否则,x将不会被更改。

就像拥有默认值或故障安全保护一样。如果您知道答案永远不应该是假的,那么如果A为假,则提供B的备份值。

答案 1 :(得分:4)

获取iframe window对象的DOM引用的方法是使用:

contentWindow.document

现在,原因IE<8有问题,使用

小填充
var doc = ($iframe[0].contentWindow || $iframe[0].contentDocument).document;
// Browser you get this one ^^^ ?  NO? Sh** you're IE7, go with^^

因此早期版本的IE会跳过contentWindow因无法识别的原因,并且由于||(或)运算符会跟进下一个contentDocument

我不必重复OR运算符的原因,因为其他聪明人已经解释过它:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_Operators

答案 2 :(得分:-2)

这只是三元运算符的一种简短形式,它总是根据语句返回一个值。所以,e。 G:

var fruit = "apple";
var test = fruit === "apple" ? fruit : "banana";

当水果设置为&#34; apple&#34;时,将变量test设置为fruit的值。否则,测试将使用&#34; banana&#34;初始化。