[英]Javascript logical operator && in statements?
我已經開始深入研究骨干網,在使用路由器功能來創建和銷毀視圖時,我遇到了這個小片段,這對我來說並沒有什么意義,因為我一直認為這些運算符只能在條件語句
this.view && this.view.remove();
它位於連接到路由器的方法內部,該方法似乎很吸引人,但我總是對伏特加代碼感到厭倦,因為伏特加代碼不適合我。
繼承人的完整方法
loadView : function(view) {
this.view && this.view.remove();
this.view = view;
}
很想更好地理解這一點,希望它不要太傻問。
干杯。
在JavaScript中:
this.view && this.view.remove();
相當於
this.view ? this.view.remove() : this.view;
僅當左側為真時,才執行右側 。 如果表達式的值被忽略並且左側沒有副作用(在這種情況下),則它也等效於此:
if (this.view) {
this.view.remove();
}
因此,在這種特定情況下,如果存在現有view
,則將其刪除。 請注意,此表達式的值不一定是布爾值(與許多其他語言不同); 它是remove
返回的任何內容。 但是,此值將被忽略,因此實際上不相關。
javascript中的運算符&&
評估第一個表達式,如果它是假的,則返回它,如果是事實,則對第二個表達式進行求值並返回。
對於||
反之亦然:對第一個表達式求值,如果是真,則返回它,否則對第二個表達式求值並返回。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.