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

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

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

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


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

即|| 和 &&都會返回最後一次運算的結果,而不是簡單的true或false。
[color=orange]
這個特性很方便,但也很容易迷惑人,呵呵~~![/color]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值