在项目中那个少用if else 语句,精简代码,便于维护的方法(1)

2023-08-01,,

一般我在写一个函数的时候,可能需要一个回调函数,例如:

function loadQtipCode(dom, title, content, width, showcb, hidecb) {
$(dom).qtip({ content: {
title: {
text: title,
button: true
},
text: content
},
position: {
my: 'center',
at: 'center',
target: $(window)
},
show: {
event: false,
solo: false,
ready: true,
modal: {
on: true,
blur: false
}
},
hide: {
event: "unfocus"
},
events: {
hide: hidecb || false,
show: showcb || false
},
style: {
classes: "qtip-shadow qtip-bootstrap qtip-service",
height: false,
width: width
} });
}

showcb和hidecb就是在窗口关闭或者打开的时候执行的回调函数,但是需要保证在调用的时候不传回调函数的时候不报错,就需要用hidecb || false 和showcb || false。
hidecb || false可以这样来理解:
hidecb || false的意思是

if(hidecb ){
return hidecb ;
}else{
return false;
}
 
 

这样即使客户不调用回调函数hidecb的时候就返回false,不会报错
同理hidecb && false 这样来理解:
 

if(hidecb ){
return false ;
}else{
return hidecb;
}

 
在项目中我们经常用到
var aa = hidecb() ||  showcb();
这里可以理解为一个闭包里执行的结果然后赋值给aa
 

(function(){
var a =hidecb() ; if(new Boolean(a)){
return a;
}else{
return showcb();
}
}());

还有一种我们经常用到的,
if(aa) {
invalid(opts.position);
}
其实相当于 aa && invalid(opts.position);
 

JS中new Boolean()和Boolean()有什么区别?

前者是作为构造函数构造一个Boolean实例,得到的是一个对象,后者是作为普通函数调用,得到的是函数返回值false。
new Boolean(null);      输出:  Boolean {[[PrimitiveValue]]: false}
Boolean(null)   输出:false

 

 

在项目中那个少用if else 语句精简代码,便于维护的方法(1)的相关教程结束。

《在项目中那个少用if else 语句,精简代码,便于维护的方法(1).doc》

下载本文的Word格式文档,以方便收藏与打印。