1、 逻辑运算符( &&,||,! )

  • 两边都先转换为boolean,再判断,返回的是 boolean值

    1. <script>
    2. // &&与 只有两个结果为true,结果才为true
    3. console.log(3 > 2 && 4 > 3);
    4. console.log(3 > 2 && 4 < 3); true && false
    5. console.log(3 < 2 && 4 > 3); false && true
    6. // ||或 任意一边为true,结果为true
    7. console.log(3 > 2 || 4 < 3); true || false
    8. console.log(3 < 2 || 4 > 3); false || true
    9. // ! 取反
    10. console.log(!(3>4))//!false
    11. </script>

1-1 逻辑 与 运算 (&&)

两边都为true,结果才为true 遇到false的情况,直接返回

如果前面类型转换后为true,则返回最后一个
console.log(77&&33);//返回33

console.log(true&&9&&"您好");//返回“您好”

console.log(80 && true );//返回true

如果前面有一个转换后不是true,则返回第一个转换为false的值
console.log(“”&&true);//返回空格

console.log(44&&0&&"hello");//返回0

console.log(55&&false&&0);//返回false

console.log(0&&null&&55);//返回0

console.log(NaN && 16 && "");//返回NaN

console.log("" && NaN && 12);//返回“”空字符串
console.log("abc" && 10); //输出10
        console.log( 0 && "abc"); //输出0
        console.log( "1"&& "abc");// abc

1-2 逻辑 或 运算 (||)

只要一个条件为true,则返回true;都为false,则返回false

有一个为true,则返回true;都为false,一直走到最后一个,打印最后一个
console.log(33<22||33>11);//返回true

console.log(undefined || null || 0);//返回0

console.log(undefined || 88 || 99 );//返回88

console.lof(undefined || 33>10 || false);//返回true 

console.log(null || undefined || NaN);//返回NaN

console.log(NaN || undefined) ;//返回undefined

console.log("hellow" || NaN);//返回hellow
 var b  = 0 ||"abc"; //abc
 var c = "abc" || 1; //abc
var d = 0 || NaN; //NaN
console.log(b);
console.log(c);
console.log(d);

1-3 逻辑 非 运算 ( !)

返回值一定是boolean值 结果取反
console.log(!false);//true

          console.log(!88);//false

          console.log(!NaN);//true

          console.log(!!NaN);//false

          console.log(!!"hell");//true

2、 比较运算符( >,<,==,>=,<=,!= )

  • 两边都先转换为number,再比较,返回的是 boolean

    var a = true
    var b = 1;
    console.log(a==b) // true
    console.log(a=="1") //true  两边都先转为number
    
  • 注意: null == undefined

null 和 undefined 不能转化为其他值
** Number(""),Number(" "),Number(null) => 输出 0**

// Number(""),Number(" "),Number(null) => 输出 0
console.log(false == ""); // true
console.log(true == 1); // true
console.log(null == undefined);  // true
console.log(undefined == false);  // false
console.log(1 == "1"); // true
console.log(null == false); // false
/* 1.只有有一边为 boolean 先两边转为number 
   2.一边为string,一边为number,先将两遍转为number

    // 两边都先转为number
  3. null == undefined
    4. null 和 undefined 不能转化为其他值
*/

3、自增、自减运算符 (“++”、“—”)

自增

++放前面先自增,后运算

++放后面先运算,再自增

 var a = 10;
        var c = 20;
        b =++a + 2;
        d = c++ +3;
        console.log(b); //12
        console.log(a); //11
        console.log(d); //23
        console.log(c); //21
var a = 10;
        a++;   //a=11
        b = ++a + 2;  //a=12  b = 14
        c = ++b + a++ + 4; // b =15  c= 31 a =13
        console.log(a);  // 13
        console.log(b);  // 15
        console.log(c);

自减

— 放前面先自减,后运算

— 放后面先运算,再自减

var a = 10;
        a--;  //a = a-1;
        console.log(a);
 var a = 20;
        b  = --a+1;  //a = 19  b=20;
        console.log(a);
        console.log(b);

4、三目运算


 <script>
        var a=(5>4)?"5大于4":"5小于4"
    </script>

5、赋值运算

<script>
        // +=,-=;
        var a = 2;
        // a=a+4;
        a+=4;  
        var b = 4;
        b-=4; //b=b-4;
        console.log(a); //6;
        console.log(b); //0
    </script>