了解js运算符

125 阅读2分钟

JS 运算符

算术运算符

  • JS 运算符  + - * / %
  • 隐式转换:js 内部帮助我们转换
  • 显式转换:人为添加方法转换数据类型
  • 除了加法数据类型不是 number 类型时会进行拼接, 其他都不会拼接, 会隐式转换
    console.log(1 + 2)  // 3
    console.log(1 + '2')    // //"12" +有字符串会拼接
    console.log(2 - 2)  // 0
    console.log(2 - '2')  // 2 - '2'    --> 2 -2    == 0
    console.log(1 * 3)  // 3
    console.log(1 * '3')  // 1 * '3'    --> 1 * 3   == 3
    console.log(3 / 1)  // 3
    console.log(3 / '1')  // 3 / '1'    --> 3 / 1   == 3
    console.log(7 % 2)  // 1
    console.log(7 % '2')  // 7 % '2'    --> 7 % 2   == 1

赋值运算符

  • JS 的赋值
    •      可以用赋值号赋值(=)
    •  +=  -=  *=  /=  %=
      1. 做什么的
    •      运算
      1. 可以不用
    •      可以
      1. 用了有什么好处
    •      简化代码量
var a = 1
//a = a + 1 // 2
//a += 1 //2
// a = a * 1 // 2
// a *= 1 //2
// a = a * 1 // 2
// a *= 1 //2
// a = a % 1 // 0
// a %= 1 //0
 console.log(a)

比较运算符

  • JS 的比较运算符
    •    <   >=  <=  ==  === !=  !==

    • ==   等于

    • =    赋值

    • ===  全等

    • == 和 === 作用一样, 用于对比两侧数据是否相等

    • == 只对比数据, 不对比数据类型

    • === 对比数据, 且 对比数据类型

    • == 在对比数据时, 两侧数据不同, 比如 一侧是数字, 一侧是字符串, 会进行隐式转换

    console.log( 1 > 2) //flase

    console.log( 1 < 2) //true

    // == 隐式转换 不判断类型 只对比数据

    console.log( 2 == "2") //true

    // === 会判断类型

    console.log( 2 === "2") //flase

    //!= !== 与 == === 一样

    console.log( 2 != "2") //flase

    console.log( 2 !== "2") //true
  • !=   不等于
  • !==  不全等于
  • 两者作用相同, 用于对比两侧数据是否相同, 相同时返回 false, 不相同返回 true
  • != 只对比数据, 不对比数据类型   (会进行隐式转换, 转换为相同类型再对比)
  • !== 对比数据, 且 对比数据类型
console.log(2 != 2) // false
console.log(2 !== 2) // false
console.log(2 != '2') // false
console.log(2 !== '2') // true

逻辑运算符(重点)

  • 逻辑运算符

    •      &&  (逻辑与  逻辑且)

    •      ||  (逻辑或)

    •      !   (非, 取反, 逻辑非)

//逻辑与 &&

//    var b = true && true //前真返回后一个值 true

//     var b = true && false //前真返回后一个值 false

// var b = false && true  //前假返回前一个 false

// var b = 0 && 1

// console.log(b) //0 false && true

// var b = 1 && 2

// console.log(b) //2 true && true
  • 逻辑或 ||

    *  语法:

    *      变量1 || 变量2

    *      表达式1 || 表达式2

    *  返回方式:

    *      前一个为真, 就返回第一个

    *      前一个为假, 就返回后一个

// var b = 1 || 0 //1

// var b = 0 || 11 // 11
  • 逻辑非 , 取反

    • 语法 !变量

    • 作用:

    •  改变变量值的布尔类型

var b = true

b = !b //false

//    var c = 9

//    c = !9

//    console.log(c) // false

var c = 9

console.log(!c) // false

console.log(!!c) // true

自增自减运算符

  • 自增自减
    • 变量名  前  或者 后 写上 ++(--)
//    var a = 0

//    var b = ++a //1

//    var c = a++ //1

var b = ++a

      1. 先给 a 自增1, a的值为1

      2. 参与周围表达式的运算, 把 a 的值 赋值给 变量 b

 console.log(b)   // 1

 

 ++ 在后, 先参与周围表达式运算, 然后自增1

 var c = a++

      1. 把 a 的值直接赋值给 c (此时还未自增, 也就是说 a 的值 为 0)

      2. a 自增1
 自减同理