文章詳情頁
javascript - 請問這段 el && fn.call(el, e, el)代碼這么寫什么意思?
瀏覽:68日期:2023-02-12 14:16:12
問題描述
el && fn.call(el, e, el)這段代碼這么寫,我感覺有點懵逼。如果是想調(diào)用fn的話為什么不直接寫fn.call(el, e, el)。可是前面還加&符號,他這是想求布爾值的話又不return。這樣求出true or false又有什么意義?
問題解答
回答1:利用了 && 的短路性質(zhì)。
在 A && B 中
意思是 如果 A 為假,那么整個表達(dá)式就是假,不用給 B 求值。 如果 A 為真,才再對 B 求值來判斷
所以上面的代碼的意思是
如果 el 為真,那么執(zhí)行 fn.call(el, e, el);
|| 也有類似的性質(zhì):
如果左值為真,后面的就不必求值了。
比如 用來指定默認(rèn)值
function test(a){ a = a || ’默認(rèn)值’; return a; }test(); // => ’默認(rèn)值’test(’wow’); // => ’wow’ 回答2:
如果el存在的話 就調(diào)用后面的函數(shù) 否則不調(diào)用
回答3:// 如果el為空會報錯,所以加個判斷if(el){ fn.call(el, e, el)}回答4:
a && b 相當(dāng)于 if (a){
b
}
標(biāo)簽:
JavaScript
上一條:javascript - 判斷用戶網(wǎng)絡(luò)環(huán)境下一條:javascript - jQuery post()方法,里面的請求串可以轉(zhuǎn)換為GBK編碼么?可以的話怎樣轉(zhuǎn)換?
相關(guān)文章:
1. java中在哪些情況下需要使用泛型通配符如:? extends T 或者 ? super T2. javascript - electron中的a標(biāo)簽怎么用瀏覽器直接打開而不是在框架窗體內(nèi)3. javascript - express如何使用session?4. mysql - enum和char 類型的抉擇5. java - ExecutorService不關(guān)閉會怎樣?6. javascript - elasticsearch.js&nodejs scoll方法的問題7. javascript - 如何用 echarts 實現(xiàn) 線路圖??8. c++ - python error: Unable to find vcvarsall.bat9. javascript - easyUI中,window.location.href=url;如何跳到一個新的tab上,而不是在原tab上?10. python 3.4 error: Microsoft Visual C++ 10.0 is required
排行榜

熱門標(biāo)簽