if(type){
options = success
success = data;
data = {};
}
options = options || {};return $.ajax({type: options.type || 'post',dataType: options.dataType || 'json',data: data,url: url,success: function(res){if(res.status === 0) {
success && success(res);
} else if(res.status === 2){ //未绑定手机号that.setPhoneNotice();
} else if(res.status === 3){ //未激活邮箱that.setEmailNotice();
} else {
layer.msg(res.msg || res.code, {shift: 6});
options.error && options.error();
}
}, error: function(e){
layer.msg('请求异常,请重试', {shift: 6});
options.error && options.error(e);
}
});
有几处写法不太理解,例如这种:options.type || ‘post’,这是什么用法,像三元又不像。中间一个或。
options.error && options.error(); 还有这种,他是啥意思。
回答
js逻辑运算
JS中的||符号:
运算方法:
只要“||”前面为false,不管“||”后面是true还是false,都返回“||”后面的值。
只要“||”前面为true,不管“||”后面是true还是false,都返回“||”前面的值。
总结:真前假后
2、JS中的&&符号:
运算方法:
只要“&&”前面是false,无论“&&”后面是true还是false,结果都将返“&&”前面的值;
只要“&&”前面是true,无论“&&”后面是true还是false,结果都将返“&&”后面的值;
(a || b) === (() => { if (a) {return a;} else {return b} })() === (a ? a : b)
(a && b) === (() => { if (a) {return b;} else {return a} })() === (a ? b : a)
如楼上所说,在你粘贴的代码中作用于默认值填充,QQ靓号出售平台地图判断与你是否传参或者该值是否存在,如果不存在就使用 ||后面的值作为默认值
这个叫短路运算,搜一下有很多解释的,目的就是简化代码