javascript几种运算符

目录

运算符

分类

 算术运算符

赋值运算符 

比较运算符

普通比较

绝对比较

逻辑运算符

! 非:取反

 运算符的优先级

三目运算符


运算符

分类

  • 运算符:算术运算符,赋值运算符,比较运算符,逻辑运算符,三目运算符

  • 表达式:算术表示式,赋值表达式,判断表达式,逻辑表达式

 算术运算符

+  -   *   /  %取余      自增++    自减--

  • 数据在进行运算的时候,会尽量转为数字在进行运算(内置帮我们去转的,属于隐式转换)符合Number的规律

  • + :一旦遇到字符串表示拼接 将另一边数据也转为字符串

  •  console.log(10 + 10);
            console.log(10 + "10"); //"10" + "10" =>"1010"
            console.log(10 + 20 + "100"); //30 + "100" => "30" + "100" => "30100"
            console.log(true + 100); // 1 + 100 =>101
            console.log(false + null); // 0 + 0 => 0
            console.log("" + 100); // "" + "100" => "100"
    
            console.log(10 - "5"); // 10 - 5 = >5
            console.log(10 - "5px"); // 10 - NaN =>NaN
            console.log(10 - null); // 10 - 0 => 10
            console.log(10 - true); // 10 - 1 => 9
    
            console.log(10 * null); // 10 * 0 => 0
            console.log(10 * true); // 10 * 1 => 10
    
            console.log(100 / ""); // 100 / 0 => Infinity
    
            // % 取余(取模)
            console.log(100 % "5"); //0
            console.log(100 % "3"); //1

  • ++ :不管++在前还是++在后都表示自身加1,++在前表示先自身加1,然后再进行运算,++在后表示先进行运算然后再自身加1

  • -- :不管--在前还是--在后都表示自身减1,--在前表示先自身减1,然后再进行运算,--在后表示先进行运算然后再自身减1

   var a = 5;
        // a++;
        ++a;
        console.log(a);//6
        var b = 3;
        // var c = ++b;
        // console.log(c,b); //4 4

        // var c = 3;
        // console.log(c, b); //3 4
        var e = 2; //10
        //          2   +  3  +  5 + 5   +  7  -  7  -  9   + 9
        console.log(e++ + e++ + ++e + e++ + ++e - e++ - ++e + e++); //15
        console.log(e); //10
        var f = 3; //5
        //          3  +  4  +  6  -  5  - 5  +  4   -  5  -  4  +  4   + 4
        console.log(f++ + f++ + ++f - --f - f-- + f++ - f-- - f-- + ++f + f++); //6
        console.log(f); //5
        // ++ -- 同样存在隐式转换
        var test1 = "10";
        --test1;
        console.log(test1);//9

赋值运算符 

= 赋值 将等号右边的值赋值给等号左边
+=  -=  *=  /=  %=

var a = 10;
console.log(a);

// 在a的基础上增加 5
// 给a重新赋值
// a = 15;
// console.log(a);

// a = a + 5;
a+=5; //相当于 a = a + 5;
console.log(a);


var b = 100;
b -= 50; //<=> b = b - 50;
console.log(b);

//...

比较运算符

普通比较

==  等于  >  >=  <  <=   != 不等于

 
        // 1.数据在进行比较的时候,会尽量转为数字进行比较(内置帮我们去转的,属于隐式转换)符合Number的规律  
        console.log(10 > 5);//true
        console.log(10 > "5");// 10 > 5 true
        console.log(true > false);//1 > 0 => true
        console.log("100px" > 100);// NaN > 100 => false
        console.log(null > "");// 0 > 0 =>false
        console.log(null >= "");// 0 > 0 =>true
        console.log(10 != "20"); //10 != 20 => true

        // 2.null等于undefined 但是null和undefined与其它数据类型都不相等
           //null == 0  =>false
        console.log(null == "");//false
        console.log(null == undefined);//true
        console.log(NaN == NaN);//false
       console.log(NaN != NaN);//true
       console.log(undefined == undefined); //true
       console.log(undefined == 0);  //false  
       console.log(null == undefined);//true
       console.log(4 == 'abc'); //false
       console.log(NaN == NaN);//false
       console.log(NaN != NaN);//true
       console.log(null == null); //true
       console.log(null !== undefined);//true
       console.log(3 !== "3");//true
          console.log(null >= 0);  true
            console.log(null <= 0); true
        // 3.字符串比较是按照ASCII(Unicode编码)值进行比较的,并且是按位进行比较的一旦某一位比较出结果,就不再比了
        console.log("158" > "1399999999999931231");//false  
        // 0 - 9 :48 - 57
        // A - Z: 65 - 90
        // a - z: 97 - 122

绝对比较

=== 绝对等于   !== 绝对不等于

// 1.不同数据类型一定不相等
 //=== 绝对等于   (不仅要值相等,数据类型也要一样)
         //   !==    10 !== "10"   10 != "10"


console.log(0 == "");
console.log(0 === "");
console.log(9 === "9");
console.log(null === undefined);
console.log("10" !== 10);//true

逻辑运算符

 &&与  || 或   ! 非 

  • &&与 :表示且的的关系,都为真才为真,一假即假

  • ||或:表示或者的关系,都为假才为假,以真即真

  // &&与  || 或
        console.log(true && true); //true
        console.log(true && false && true); //false
        console.log(true || false);//true
        // 逻辑运算符会自动检测当前数据类型的真假 符合Boolean的规律
        // 根据自身的规律返回对应位置的值
        // 短路运算  
        var res = 66 && "10" && "哈哈" && 100;
        console.log(res);//100
        var res1 = 66 && null && "哈哈" && 100;
        console.log(res1);//null
        var res2 = "aa" || "bb" || "";
        console.log(res2); //"aa"   
        var res3 = "" || null || undefined || NaN;
        console.log(res3);//NaN
  • ! 非:取反

// 先将当前数据转为布尔值符合Number的规律,然后再进行取反
console.log(!10); // true - > false
console.log(!20);//true -> false
console.log(!"哈哈"); //true -> false
console.log(!""); //false -> true

 运算符的优先级

javascript几种运算符_第1张图片

三目运算符

条件 ? 条件成立执行的代码段 : 条件不成立执行的代码段; (三目运算符又称之为问号冒号表达式,一般应用于简单的判断相当于if..else)

// 条件  ? 条件成立执行的代码段 : 条件不成立执行的代码段; (三目运算符又称之为问号冒号表达式,一般应用于简单的判断相当于if..else)
        // 条件为真执行的是问号后边的代码段  条件为假执行的是冒号后边的代码段
        var score = 50;
        score >= 60 ? console.log("中午吃点好的") : console.log("中午不吃了~~~");

        // 单个数据会自动检测真假  
        "" ? console.log("真的"): console.log("假的");

你可能感兴趣的:(JS,javascript,开发语言)