您的位置:首頁技術文章
文章詳情頁

javascript - jquery對象之間做 || 運算 ,返回的為什么不是boolean類型

瀏覽:93日期:2023-09-18 17:21:53

問題描述

jquery源碼片段如下:

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

我認為context這里是一個jquery對象, rootjquery是$(document)

但他們返回的記過不應該是布爾值嗎, 這里為什么是一個jquery對象.

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

謝謝

問題解答

回答1:

基礎請看這里, 一目了然.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); });}回答2:

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

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

(來自邏輯運算符)

對于非Boolean的環境中:

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

(來源于JavaScript中的邏輯運算的返回值(邏輯與&&,邏輯或||,邏輯非!))

標簽: JavaScript
国产综合久久一区二区三区