jquery原始碼片段如下:
// HANDLE: $(expr, $(...))
} else if ( !context || context.jquery ) {
return ( context || rootjQuery ).find( selector );
我認為context這裡是一個jquery物件, rootjquery是$(document)
但他們回傳的記過不應該是布林值嗎, 這裡為什麼是一個jquery物件.
所以||運算在這裡做了什麼? 他的作用是什麼???
#謝謝
过去多啦不再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);
});
}
滿天的星座2017-05-16 13:37:57
Javascript邏輯運算子可以在非Boolean的環境中使用.
儘管 && 和 || 運算子能夠在非Boolean環境中使用, 但如果他們的返回值能夠轉換成Boolean值的話,也可以認為是Boolean運算
(來自邏輯運算子)
對於非Boolean的環境中:
當有一個false時,返回false一側的值
當有兩個false時,返回運算符之前(左側)的值;
當有兩個true時,返回運算符之後(右側)的值。
(來自JavaScript中的邏輯運算的回傳值(邏輯與&&,邏輯或||,邏輯非!))