Skip to content

运算符

算术运算符

用于数学计算,包括加(+)、减(-)、乘(*)、除(/)、取余(%)等。

比较运算符

用于比较两个值之间的大小或者是否相等,包括大于(>)、小于(<)、大于等于(>=)、小于等于(<=)、等于(==或===)、不等于(!=或!==)等。

  • 使用 ==!= 如果它们类型不同,则进行类型转换后再比较;

    js
    console.log(10 == '10') // 输出 true
    console.log(10 != '10') // 输出 false
  • 使用 ===!== 不会进行类型转换;

    js
    console.log(10 === '10') // 输出 false
    console.log(10 !== '10') // 输出 true

逻辑运算符

用于对逻辑表达式进行求值,包括与(&&)、或(||)、非(!)等。

  • || 第一项为真则返回第一项,否则返回第二项;

    js
    console.log(0 && 20) // 输出 0
    console.log(10 && 20) // 输出 20
  • && 第一项为真则返回第二项,否则返回第一项;

    js
    console.log('Hello' || 'Word') // 输出 "Hello"
    console.log('' || 'Word') // 输出 "Word"

条件运算符

也叫三元运算符,用于根据某个条件进行赋值,语法格式为:condition ? exprIfTrue : exprIfFalse。

js
10 ? 'hello' : 'word' // hello

Object.is

Object.is 来进行相等判断时,一般情况下和 === 判断相同,它处理了一些特殊的情况。

  • Object.is 方法可以正确地比较+0 和-0 的相等性,而 ===== 不行。

    js
    console.log(Object.is(+0, -0)) // 输出 false
    console.log(+0 === -0) // 输出 true
    console.log(+0 == -0) // 输出 true
  • Object.is 方法可以正确地比较 NaN 的相等性,而 ===== 不行。

    js
    console.log(Object.is(NaN, NaN)) // 输出 true
    console.log(NaN === NaN) // 输出 false
    console.log(NaN == NaN) // 输出 false