文章详情页
javascript - 请问这段 el && fn.call(el, e, el)代码这么写什么意思?
浏览:119日期:2023-02-12 14:16:12
问题描述
el && fn.call(el, e, el)这段代码这么写,我感觉有点懵逼。如果是想调用fn的话为什么不直接写fn.call(el, e, el)。可是前面还加&符号,他这是想求布尔值的话又不return。这样求出true or false又有什么意义?
问题解答
回答1:利用了 && 的短路性质。
在 A && B 中
意思是 如果 A 为假,那么整个表达式就是假,不用给 B 求值。 如果 A 为真,才再对 B 求值来判断
所以上面的代码的意思是
如果 el 为真,那么执行 fn.call(el, e, el);
|| 也有类似的性质:
如果左值为真,后面的就不必求值了。
比如 用来指定默认值
function test(a){ a = a || ’默认值’; return a; }test(); // => ’默认值’test(’wow’); // => ’wow’ 回答2:
如果el存在的话 就调用后面的函数 否则不调用
回答3:// 如果el为空会报错,所以加个判断if(el){ fn.call(el, e, el)}回答4:
a && b 相当于 if (a){
b
}
标签:
JavaScript
相关文章:
1. Java EE 6:JSF与Servlet + JSP我应该学习JSF吗?2. javascript - node express 前端页面可以用html吗,实在是不想用jade3. 使用java8 env从Spring 3.2.0升级到4.1.2和休眠3,获取异常4. mysql - php如何处理因为唯一索引而引发的 Duplicate entry ’’ for key ’num’ (23000) 问题5. javascript - Element UI表格错行6. javascript - EasyUI里的TreeGrid节点上下移动问题7. python - supervisor启动程序报错,ERROR (spawn error),如何查看报错具体信息8. mysql索引 - mysql explain 的using where 到底是什么意思?9. javascript - electron中的a标签怎么用浏览器直接打开而不是在框架窗体内10. node.js - vue-cli 创建项目的时候出现connect ECONNREFUSED 错误,请问如何解决?
排行榜
