搜尋

首頁  >  問答  >  主體

javascript - jquery物件之間做 || 運算 ,回傳的為什麼不是boolean類型

jquery原始碼片段如下:

        // HANDLE: $(expr, $(...))
        } else if ( !context || context.jquery ) {
            return ( context || rootjQuery ).find( selector );

我認為context這裡是一個jquery物件, rootjquery是$(document)

但他們回傳的記過不應該是布林值嗎, 這裡為什麼是一個jquery物件.

所以||運算在這裡做了什麼? 他的作用是什麼???

#謝謝

漂亮男人漂亮男人2792 天前540

全部回覆(2)我來回復

  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-16 13:37:57

    基礎請看這裡, 一目了然.
    https://developer.mozilla.org...

    多說一句, 在 ES2015 以前, JS 的函數是沒有預設參數的.
    為了像其他語言一樣能用預設參數, 常常會這麼寫

    function demo(arg){
        arg = arg || true;
    }

    還有為了相容於不同瀏覽器 API 的時候, 也常這麼寫.

    if( !window.requestAnimationFrame ){
        window.requestAnimationFrame = (window.webkitRequestAnimationFrame ||
                                        window.mozRequestAnimationFrame ||
                                        window.msRequestAnimationFrame || 
                                        function (callback){
                                          return setTimeout(callback, 1000 / 60);
                                        });
    }

    回覆
    0
  • 滿天的星座

    滿天的星座2017-05-16 13:37:57

    Javascript邏輯運算子可以在非Boolean的環境中使用.

    儘管 && 和 || 運算子能夠在非Boolean環境中使用, 但如果他們的返回值能夠轉換成Boolean值的話,也可以認為是Boolean運算

    (來自邏輯運算子)

    對於非Boolean的環境中:

    當有一個false時,返回false一側的值
    當有兩個false時,返回運算符之前(左側)的值;
    當有兩個true時,返回運算符之後(右側)的值。

    (來自JavaScript中的邏輯運算的回傳值(邏輯與&&,邏輯或||,邏輯非!))

    回覆
    0
  • 取消回覆