运算符与表达式

1 运算符和表达式的概念

10 + 20  表达式

10 20 称为操作数
+  运算符

  • 运算符: 连接一个以上的操作数中间的符号叫做运算符

 算术运算符   + - * / % ++ --
赋值运算符  = += -= /= %=
逻辑运算符  && || !
三目运算符  条件 ? true执行的结果  : false执行的结果
比较运算符  > < >= <= ==  !=  ===

 表达式:由操作数和运算符组成的式子就叫表达式

算术表达式   操作数和算术运算符组成
赋值表达式   操作数和赋值运算符组成    
逻辑表达式   操作数和逻辑表达式组成
三目表达式   操作数和三目表达式组成
比较表达式   操作数和比较运算符组成

算术运算符

算术运算符:   +  -  *   /取余   %   ++    -- 

 <script>
        // 算术运算符
        var a = 10 + 4
        console.log(a);//14

        var b = 10-4;
        console.log(b);//6
        
        console.log(10*4);//40
        console.log(10/4);//2.5
        console.log(11%4);//3  取余
        console.log(12%4);//0  

        // 1.求n的倍数  
        var n = 9;
        console.log(100%n == 0);//true 是9的倍数 false 不是9的倍数

        // 2.判断当前这个数是不是偶数 都是2的倍数
        console.log(11%2==0)//true  偶数  false 奇数

        // 3.精度缺失 在运算过程中 是先转换成二进制进行计算  在转换过程中会造成精度缺失
        console.log(0.1+0.2);//0.30000000000000004
        console.log(0.7+0.1);//0.7999999999999999
        console.log(0.1*0.7);//0.06999999999999999

        // 4.隐式转换 在运算过程中 数据自动进行数据类型的转换
        // 隐式转换的规律:都会转换number类型进行运算  
        console.log(100 * false);//0
        console.log(100 * "123");//12300
        console.log(100 * "123px");//NaN

        console.log(100 / true);//100
        console.log(100+null); //100 
        console.log("100"- 10);//90 
        
        // 特殊:+  字符串遇到+会拼接  除了字符串数据,其他的还是会隐式转换
        console.log(100 + "123");// "100123"
        console.log(100+true);// 101
    </script>

 自加/自减 ++ --

 <script>
        // 自加++ i++  自加1  i = i+1
        // 1.基础用法
        var a = 10;
        a++;//a = a+1
        console.log(a);//11

        var b = 10;
        ++b;//b = b+1;
        console.log(b);//11

        // 2.++和--   参与运算  
        /* 
            ++在前 先自加1 然后再运算(打印)
            ++在后 先运算(打印)  再自加1
        */
        var x = 10;
        var y = x++;// y=10       x=11
        console.log(x, y);//11 10 

        var n1 = 10;
        var n2 = ++n1;// n2=11      n1=11
        console.log(n1, n2);//  11  11


        //练习1
        var s = 10;
        var t = 10;
        console.log(s++, ++t);//10  11      s=11   t=11
        console.log(s, t);//11 11



        // 练习2:
        var a = 10;
        var b = ++a + a++ + a++; //b=11+11+12=34       a=13
        var c = a++ + ++b + b++;//c=13+35+35=83        b=36  a=14
        console.log(a, b, c);//14 36 83 

        // 练习3
        /* 
            --在前 先自减1 然后再运算(打印)
            --在后 先运算(打印)  再自减1
        */
        var x = 10;
        var y = --x + x-- + --x;//y = 9+9+7=25           x=7
        var z = y-- + --y + x--;// z = 25+23+7=55        x=6  y=23
        console.log(x, y, z);// 6 23 55
    </script>

赋值运算符

=  += -= *= /= %=

     

<script>
       //赋值运算符  =  += -= *= /= %=
       var a = 10;
       console.log(a);//10

       var b = 10;
       b+=10;// b = b+10
       console.log(b);//20

       var c = 10;
       c-=5;
       console.log(c);//5

       var d = 20;
       d*=10;
       console.log(d);//200

       var e = 20;
       e/=5;
       console.log(e);//4


       var f = 101;
       f%=10;
       console.log(f);//1
        
    </script>

    比较运算符

>  >=  
< <=
!=
==
===

<script>
        /* 
          比较运算符
            >  >= 
            < <=
            !=
            ==
            ===
        */
        // 1.基础判断
       console.log(10 > 20);//false
       console.log(10 > 10);//false
       console.log(10 >= 10);//true
       console.log(10 < 20);//true
       console.log(10 <= 10);//true

       console.log(10 != 20);//true
       console.log(10 !=10) ;//false

       console.log(10==10);//true
        // 两个字符比较 一位一位的比较 而且比较的ASCII字符编码
        // "1" 49  > "2" 50   false
       console.log("1000000" > "2");//false
        //  "a" 97   >  "A" 65    
        //  "a"-"z" 97-122        "A"-"Z" 65-90
       console.log("a" > "A");

        //2 ==和===的区别是什么  面试题
        console.log(10=="10");//true ==在进行比较的时候  会进行隐式转换 尽量都会转成number类型
        console.log(10==="10")//false ===在进行比较的时候 不会隐式转换 必须一模一样才可以  
        console.log("10"==="10");//true
        console.log(null==null);//true
        console.log(undefined==undefined);//true


        //3.特殊: null在判断相等的时候  不会进行隐式转换
        console.log(null==0);//false

        console.log(undefined==0)//NaN==0  false
        console.log(null==undefined);///true
        
        console.log(NaN==NaN);//false  任何两个NaN都不相等

        console.log(null>=0);//true
        console.log(null<=0);//true

    </script>

三目运算符

  • 作用:用于判断

  • 语法 条件 ? 条件为true的时候执行的代码(==只能写一行代码==) : 条件为false执行的代码

<script>
        1==1?console.log("你好"):console.log("不好")
        "a"==="A"?console.log("1"):console.log("2")
    </script>

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值