`

JavaScript中使用&&和|| 的怪異特性_ppk筆記

阅读更多
大多數瀏覽器保存事件目標在evt.target中,但是IE使用evt.srcElement來替代。因此,在任何想使用這個目標對象時,先找出它的儲存地方。
  var evtTarget = evy.target || evt.srcElement;

這句代碼發生了什麼?
JavaScript碰到一個 ||運算符,於是開始計算第一個表達式(evy.target).如果瀏覽器兼容W3C DOM,evy.target就存在,即它不等於underfined,並且現在表達式的值為true.它不再需要繼續計算下一個表達式,所以它中斷了 || 運算。

但是,||並不返回true,而是返回最後求值的表達式的值,也就是evy.target.
它是事件的目標對象,那正是我們需要的。



&& 運算也同理,在運算第一個表達式時,如果是false 或 underfined 或 0(或可以轉化為false的值)時,就不會再去運算。但如果第一個表達式的值為true時,就會返回第二個表達式運算的結果。

即|| 和 &&都會返回最後一次運算的結果,而不是簡單的true或false。

這個特性很方便,但也很容易迷惑人,呵呵~~!
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics