Fork me on GitHub

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

 

posted on 2014-09-16 17:15  雨为我停  阅读(468)  评论(0编辑  收藏  举报