javascript - jquery對(duì)象之間做 || 運(yùn)算 ,返回的為什么不是boolean類型
問題描述
jquery源碼片段如下:
// HANDLE: $(expr, $(...))} else if ( !context || context.jquery ) { return ( context || rootjQuery ).find( selector );
我認(rèn)為context這里是一個(gè)jquery對(duì)象, rootjquery是$(document)
但他們返回的記過不應(yīng)該是布爾值嗎, 這里為什么是一個(gè)jquery對(duì)象.
所以||運(yùn)算在這里做了什么? 他的作用是什么???
謝謝
問題解答
回答1:基礎(chǔ)請(qǐng)看這里, 一目了然.https://developer.mozilla.org...
多說一句, 在 ES2015 以前, JS 的函數(shù)是沒有默認(rèn)參數(shù)的. 為了像其他語言一樣能用默認(rèn)參數(shù), 經(jīng)常會(huì)這么寫
function demo(arg){ arg = arg || true;}
還有為了兼容不同瀏覽器 API 的時(shí)候, 也經(jīng)常這么寫.
if( !window.requestAnimationFrame ){ window.requestAnimationFrame = (window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.msRequestAnimationFrame || function (callback){ return setTimeout(callback, 1000 / 60); });}回答2:
Javascript邏輯運(yùn)算符可以在非Boolean的環(huán)境中使用.
盡管 && 和 || 運(yùn)算符能夠在非Boolean環(huán)境中使用, 但如果他們的返回值能夠轉(zhuǎn)換成Boolean值的話,也可以認(rèn)為是Boolean運(yùn)算
(來自邏輯運(yùn)算符)
對(duì)于非Boolean的環(huán)境中:
當(dāng)有一個(gè)false時(shí),返回false一側(cè)的值當(dāng)有兩個(gè)false時(shí),返回運(yùn)算符之前(左側(cè))的值;當(dāng)有兩個(gè)true時(shí),返回運(yùn)算符之后(右側(cè))的值。
(來源于JavaScript中的邏輯運(yùn)算的返回值(邏輯與&&,邏輯或||,邏輯非!))
