javascript中的 && 与 || 的运用

时间:2023-03-09 06:27:49
javascript中的 && 与 || 的运用

a && b : 将a, b转换为Boolean类型, 再执行逻辑与, true返回b, false返回a

a || b : 将a, b转换为Boolean类型, 再执行逻辑或, true返回a, false返回b

转换规则:
对象为true
非零数字为true
非空字符串为true
其他为false

* 几乎所有语言中||和&&都遵循“短路”原理,
* 如&&中第一个表达式为假就不会去处理第二个表达式,而||正好相反。
* js也遵循上述原则。
* 当||时,找到为true的分项就停止处理,并返回该分项的值,否则执行完,并返回最后分项的值。
* 当&&时,找到为false的分项就停止处理,并返回该分项的值。

// var a = "" || null || 3 || 4;//3
// alert(a);
// var b = 4 && 5 && null && "0";//null
// alert(b);

剖析:"" , null均为false

例如:在人事系统中用到的:

//type:alert_success,alert_error,alert_doubt   isExist:false,true(是否包含按钮),text:内容
function createAllAlert(type, text, isExist) {
var parentdiv = $("<div class='alertInfor'> <div class='btns'></div><p>" + text + "</p></div>");
$(document.body).append(parentdiv);
$('.alertInfor').addClass(type);
var buttonEle = $("<input type='button' value='提交' class='btnSuccess fl'> <input type='button' value='取消' class='btnCancel fl'>");
isExist && $('.btns').append(buttonEle); alertShow($('.'+type)); $(".btnCancel").click(function () {
removeAlert($('.' + type));
});
}