【发布时间】:2014-06-12 16:35:05
【问题描述】:
我从未见过 OR 参数 ||在 if 语句之外使用。
这行代码有什么作用?
var doc = ($iframe[0].contentWindow || $iframe[0].contentDocument).document
是说让它等于其中任何一个???
【问题讨论】:
标签: javascript jquery symbols
我从未见过 OR 参数 ||在 if 语句之外使用。
这行代码有什么作用?
var doc = ($iframe[0].contentWindow || $iframe[0].contentDocument).document
是说让它等于其中任何一个???
【问题讨论】:
标签: javascript jquery symbols
A || B
首先评估 A。如果为真,则返回 A,并且永远不需要查看 B。 如果 A 为 false,则计算并返回 B。
例如,如果你写
function (x)
{ x = x || 50
...
如果 x 为 nil(或某种错误值),这将使 x=50。 否则,x 不会改变。
这就像有一个默认值,或者一个故障安全保护。如果您知道答案永远不应该为假,那么如果 A 为假,则提供 B 的备用值。
【讨论】:
获取对iframe 的window 对象的DOM 引用的一种方法是使用:
contentWindow.document
现在,因为 IE<8 有问题,要使用一个小的 polyfill
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
【讨论】:
这只是三元运算符的一种简短形式,它总是根据语句返回一个值。所以,e。 g.:
var fruit = "apple";
var test = fruit === "apple" ? fruit : "banana";
当fruit 设置为“apple”时,这会将变量test 设置为fruit 的值。否则,test 将被初始化为“banana”。
【讨论】: