javascript - jquery物件之間做 || 運算 ,回傳的為什麼不是boolean類型
漂亮男人
漂亮男人 2017-05-16 13:35:57
0
2
531

jquery原始碼片段如下:

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

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

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

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

#謝謝

漂亮男人
漂亮男人

全部回覆(2)
过去多啦不再A梦

基礎請看這裡, 一目了然.
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);
                                    });
}
滿天的星座

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

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

(來自邏輯運算子)

對於非Boolean的環境中:

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

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

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板