在 jquery v1.10.2 裡面的第 153行寫到:
context && context.nodeType ? context.ownerDocument || context : document,
它的實際意義是
如果 context 不存在 或者 context 沒有 nodeType 屬性時,傳回 document
如果 context 存在,而且 context 具有 nodeType 屬性時,嘗試傳回 context.ownerDocument ,如果 context.ownerDocument 不存在就改成傳回 context
為什麼可以這樣寫 ?
運算子 && 的功能
執行 A && B 假如A可以轉換為 false 就 return A 否則 return B
試著實作 function and(A,B){ if(Boolean(A) === false) return A; return B;}
結果發現 A && B 跟 and(A, B) 的運作結果完全相同
運算子 || 的功能
執行 A || B 假如 A 可以轉換為 true 就 return A 否則 return B
試著實作 function or(A,B){ if(Boolean(A) === true) return A; return B;}
結果發現 A || B 跟 or(A, B) 的運作結果完全相同
附上可以轉換為 false 的物件列表 (從這裡找到的)
0
-0
null
""
false
undefined
NaN
除了這些東西之外 丟進 Boolean 都會傳回 true
轉載自:http://etrex.blogspot.tw/2013/12/jquery.html
沒有留言:
張貼留言