js中的&&与||

一 前提小知识

    返回为true的有  对象    非空字符串   非零数字   true;

    返回为false的有   “”     0    null   undefine   NaN    false;

二 &&

     逻辑与,短路操作

     全部为真时返回最后一项

  存在为假时返回为假的第一项,后面几项变成短路操作

  例子1:均为真

      var a1 = "i am a1";

    var a2 = "i am a2";

    var a3 = "true";            //弹出  true;  

           //var a3 = true;            弹出  true;

    //var a3 = "i am a3";     弹出 i am a3;  

    //var a3 = "false";        弹出 false;

    var res = a1 && a2 && a3;

    alert (res);

  例子2 :存在假

            

      var a1 = "i am a1";

    var a2 = "i am a2";

    var   a3 =  false     //弹出 false   

    //var a3 = "false";        弹出 false; 和上面完全一样,注意!

    var res = a1 && a2 && a3;

    alert (res);

  例子3 :短路

    var a1;                 //Firefox中弹出框为空白  该类型为undifine

    var a2 = 0;     //若此为第一项 弹出 0

    var a3 = NaN;    //若此为第一项 弹出 NaN

    var res = a1 && a2 && a3;

    var a4 = typeof(a1);

    alert (a4);

    alert (res);

  

三  ||

  逻辑或 

     存在为真,则返回为真的第一项,后面短路

  全部为假,则返回最后一项。

  例子1:全部为假

    var a1 ;
    var a2 = 0;
    var a3 = NaN;
    var res = a1 || a2 || a3;
    alert (res);    //弹出NaN

      例子二: 存在真

    var a1 ;
    var a2 = 1;
    var a3 = true;
    var res = a1 || a2 || a3;
    alert (res);    //弹出1

 

四 常用方法(不断补充)

  1 逻辑判断

    var a = “”;

    var b = "b";

    var res = a||b; 

    如果第一项无意义,则返回第二项,否则返回第一项。

    var a = 1;

    var b = "b";

    var res = (a == 1)&& b;   // 弹出b

    如果a为1 则返回b 否则返回false

    啰嗦一下 == 与=== 区别

    ==  转化为同类型进行,再比较值是否相等 相等为真不等为假

    === 直接比较 类型不同 则为假 

    所以,此例中

    var res = (a == “1”)&& b;  // 弹出b

     var res = (a === “1”)&& b;   //弹出为false

    个人认为尽量用 ===

   

    

 

你可能感兴趣的:(js)