嗨我只是通過JS插件(dropdown.js)的來源會和整個下面的代碼行傳來:運算符優先級與三元條件和邏輯與運營商在JavaScript
return $parent && $parent.length ? $parent : $this.parent()
我不能要完全掌握上面的行,我理解邏輯和(& &)和三元條件運算符(... ? ... : ...
),但我似乎無法理解它們在上面的示例中如何交互。
現在,如果我的return
語句前加上一個console.log
:
console.log($parent && $parent.length ? $parent : $this.parent());
我得到:
Object { 0: <li.dropdown.open>, length: 1, prevObject: Object, context: <a.dropdown-toggle>, selector: ".parent()" }
這的確是$this.parent()
此外,$parent
在我的情況計算爲false
。
因此,這些都是樂高作品我有,有人可以把它放在地方我,給我的是如何工作的清晰圖像:
return $parent && $parent.length ? $parent : $this.parent()
謝謝。
*請注意,這個問題的預編輯的版本有一個不正確的標題,並沒有解釋什麼是真正的問題是,直到一個看着它足夠的呵護,所以請不要downvote任何答案下面是可能似乎談「的短路」的地方這個問題(運算符優先級)的實際課題爲尋找外的話題唯一着想,不小心
我看'如果($父)'是「檢查$父truthy或falsy」的方式。 –