【问题标题】:How can jquery || "OR" be used outside of an if statement? [duplicate]jquery怎么能||在 if 语句之外使用“OR”? [复制]
【发布时间】:2014-06-12 16:35:05
【问题描述】:

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

这行代码有什么作用?

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

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

【问题讨论】:

    标签: javascript jquery symbols


    【解决方案1】:
    A || B
    

    首先评估 A。如果为真,则返回 A,并且永远不需要查看 B。 如果 A 为 false,则计算并返回 B。

    例如,如果你写

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

    如果 x 为 nil(或某种错误值),这将使 x=50。 否则,x 不会改变。

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

    【讨论】:

      【解决方案2】:

      获取对iframewindow 对象的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

      【讨论】:

      • +1 表示 Sh** 你是 IE7
      【解决方案3】:

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

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

      当fruit 设置为“apple”时,这会将变量test 设置为fruit 的值。否则,test 将被初始化为“banana”。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-12-15
        • 1970-01-01
        • 2017-03-06
        • 2014-09-30
        • 1970-01-01
        • 2018-01-27
        • 2012-10-31
        相关资源
        最近更新 更多