007 运算符(P14-P19)

93 阅读5分钟

007. 运算符

  • 就是在代码里面进行运算的时候使用的符号,不光只是数学运算,我们在 js 里面还有很多的运算方式
7-1 数学运算符
  1. +

    只有符号两边都是数字的时候才会进行加法运算

    只要符号任意一边是字符串类型,就会进行字符串拼接

  2. -

    会执行减法运算

    会自动把两边都转换成数字进行运算

  3. *

    会执行乘法运算

    会自动把两边都转换成数字进行运算

  4. /

    会执行除法运算

    会自动把两边都转换成数字进行运算

  5. %

    会执行取余运算

    会自动把两边都转换成数字进行运算

// + - * / %取余
var a = 10
var b = 20 //30
console.log(a+b)

var a = 10
var b = true //11
console.log(a+b)

//取余
var a = 10
var b = 3 //1
console.log(a%b)

//时间————取整,取余
var a = 1000 //分钟
var b = parseInt(a/60) // 16小时
var c = a%60 // 40分钟
console.log(b)
console.log(b+":"+c) //16:40

console.log(1+"2"*3+4) //11
先乘法再加法

7-2 赋值运算符
  1. =

    就是把 = 右边的赋值给等号左边的变量名

    var num = 100

    就是把 100 赋值给 num 变量

    那么 num 变量的值就是 100

  2. +=

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

    a += 10 等价于 a = a + 10

  3. -=

    var a = 10;

    a -= 10;
    console.log(a); //=> 0
    

    a -= 10 等价于 a = a - 10

  4. *=

    var a = 10;
    a *= 10;
    console.log(a); //=> 100
    

    a *= 10 等价于 a = a * 10

  5. /+

    var a = 10;
    a /= 10;
    console.log(a); //=> 1
    

    a /= 10 等价于 a = a / 10

  6. %=

    var a = 10;
    a %= 10;
    console.log(a); //=> 0
    

    a %= 10 等价于 a = a % 10

        var a = 1
        a=2
        console.log(a)

        //交换两个数
        var m=5
        var n=6
        var c
        c=m
        m=n 
        n=c //6 5 

        //+= -= *= /= %=
        var number=5 
        number+=1//number=number+1
        console.log(number) //6
7-3 比较运算符
  1. ==

    • 比较符号两边的值是否相等,不管数据类型

      1 == '1'

      两个的值是一样的,所以得到 true

  2. ===

    • 比较符号两边的值和数据类型是否都相等

      1 === '1'

      两个值虽然一样,但是因为数据类型不一样,所以得到 false

  3. !=

    • 比较符号两边的值是否不等

      1 != '1'

      因为两边的值是相等的,所以比较他们不等的时候得到 false

  4. !==

    • 比较符号两边的数据类型和值是否不等

      1 !== '1'

      因为两边的数据类型确实不一样,所以得到 true

  5. >=

    • 比较左边的值是否 大于或等于 右边的值

      1 >= 1 结果是 true

      1 >= 0 结果是 true

      1 >= 2 结果是 false

  6. <=

    • 比较左边的值是否 小于或等于 右边的值

      1 <= 2 结果是 true

      1 <= 1 结果是 true

      1 <= 0 结果是 false

  7. >

    • 比较左边的值是否 大于 右边的值

      1 > 0 结果是 true

      1 > 1 结果是 false

      1 > 2 结果是 false

  8. <

    • 比较左边的值是否 小于 右边的值

      1 < 2 结果是 true

      1 < 1 结果是 false

      1 < 0 结果是 false

        var sum = 200
        console.log(sum>=200) //true

        var age = 22
        console.log(age==22) //true

        var age = "22"
        console.log(age===22) //false
        console.log(parseInt(age)===22) //true
        
        console.log(true==1) //true
        console.log(true===1) //false

        console.log(""==0) //true
        console.log(""===0) //false

        console.log(undefined==0) //false
        console.log(undefined===0) //false

        var x = 6
        console.log(x!=6) //false

        var x = "6"
        console.log(x!=6) //false
        console.log(x!==6) //true
        console.log(parseInt(x)!==6) //转成纯数值再对比 false
7-4 逻辑运算符
  1. &&

    • 进行 且 的运算

      符号左边必须为 true 并且右边也是 true,才会返回 true

      只要有一边不是 true,那么就会返回 false

      true && true 结果是 true

      true && false 结果是 false

      false && true 结果是 false

      false && false 结果是 false

  2. ||

    • 进行 或 的运算

      符号的左边为 true 或者右边为 true,都会返回 true

      只有两边都是 false 的时候才会返回 false

      true || true 结果是 true

      true || false 结果是 true

      false || true 结果是 true

      false || false 结果是 false

  3. !

    • 进行 取反 运算

      本身是 true 的,会变成 false

      本身是 false 的,会变成 true

      !true 结果是 false

      !false 结果是 true

        // &&且
        var a = true
        var b = true
        console.log(a && b) //true

        var category ="衣服" //选择的当前商品的类别
        var price =300 //总金额
        console.log(category==="家电"&& price>200) //false
    
        // ||或
        var day = 5
        var b = true
        console.log( day === 6 || day === 7) //false
        
        // !取反
        var c = true
        console.log(!c) //false

        var length = 0
        console.log(length = 0) //0
        console.log(!length) //true
        console.log(!"111") //false

        /*
        1. !!a ==>转换成布尔值
        2. && || 短路 用发
        
        */
        var y = 1000
        console.log(y && y.toString()) //1000
        //短路用法,不会出现莫名报错

        var z = ""
        //console.log(z || "这个家伙很懒,什么也没有留下") 
        document.write(z || "这个家伙很懒,什么也没有留下") 
        //向页面中输出这个家伙很懒,什么也没有留下
    
        var z = "赵钱孙李"
        document.write(z || "这个家伙很懒,什么也没有留下") 
        //向页面中输出赵钱孙李
7-5 自增自减运算符
  1. ++

    • 进行自增运算

    • 分成两种,前置++后置++

    • 前置++,会先把值自动 +1,再返回

      var a = 10;
      console.log(++a);
      // 会返回 11,并且把 a 的值变成 11
      
      
    • 后置++,会先把值返回,再自动+1

      var a = 10;
      console.log(a++);
      // 会返回 10,然后把 a 的值变成 11
      
    var n = 10;
    var res =++n + n++ + ++n
    //        11    11    13
    console.log(n,res); //13 35
    
  1. --

    • 进行自减运算
    • 分成两种,前置--后置--
    • ++ 运算符道理一样
         var m = 10;
         var res = m++ + --m + m--  + ++m
         //         10    10     10    10
         console.log(n,res); //10 40
7-6. 三元运算符(三目运算符)
  • 三元运算,就是用 两个符号 组成一个语句

  • 语法: 条件 ? 条件为 true 的时候执行 : 条件为 false 的时候执行

       10<20?console.log(111):console.log(222)

       //满200 减10
       var sum = 210
       var youhuisum = sum>200? sum-10 : sum
       console.log(sum,youhuisum)//210 200
   
       //满200 减10  满100 减5
       var sum = 190
       var youhuisum = sum>200? sum-10 : (sum>100?sum-5:sum)
       console.log(sum,youhuisum)//190 185