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)); }); }