JavaScript知识点回顾(九)——操作符(三)

165 阅读3分钟

这是我参与8月更文挑战的第九天,活动详情查看:8月更文挑战

操作符

乘法操作符

乘法操作符用(*)表示。需要注意的是乘法操作符的一些特殊规则:

  • 如果任一操作数是NaN,那么返回NaN
  • 如果是Infinity乘0,那么返回NaN
  • 如果是Infinity乘非零的数,那么返回Infinity或者-Infinity(根据非零数符号决定)
  • 如果是Infinity乘Infinity,那么返回Infinity
  • 如果操作数不是数值,那么会先调用Number()转型函数,然后再乘。

除法操作符

除法操作符用(/)表示。这里也需要注意一些除法操作符的特殊规则:

  • 如果任一操作数是NaN,那么返回NaN
  • 如果是0除以0,那么返回NaN
  • 如果是Infinity除以Infinity,那么返回NaN
  • 如果是非零数除以0,那么返回Infinity或者-Infinity(根据非零数符号决定)
  • 如果操作数不是数值,那么会先调用Number()转型函数,然后再乘。
  • 如果是Infinity除以非零的数,那么返回Infinity或者-Infinity(根据非零数符号决定)
  • 如果操作数不是数值,那么会先调用Number()转型函数,然后再除。

取模操作符

取模(余数)操作符用(%)表示。特殊规则如下:

  • 如果被除数是无限值,除数是有限值,那么返回NaN
  • 如果被除数是有限值,除数是0,那么返回NaN
  • 如果是Infinity除以Infinity,那么返回NaN
  • 如果被除数是有限值,除数是无限制,那么返回被除数
  • 如果被除数是0,除数不是0,那么返回0
  • 如果操作数不是数值,那么会先调用Number()转型函数,然后再除。

指数操作符

指数操作符用(**)表示,需要注意的是指数操作符是ES7新增的。

    console.log(16** 0.5)   //4

加性操作符

加性操作符用(+)表示,需要注意的是,如果操作数有字符串,那么会执行字符串拼接

减性操作符

减性操作符用(-)表示。

关系操作符

关系操作符包括小于(<),大于(>),小于等于(<=)和大于等于(>=)。需要注意的是:

  • 如果操作数都是字符串,则逐个比较字符串中对应字符的编码

  • 如果有任一操作数是对象,则调用其 valueOf() 方法,取得结果后再根据前面的规则执行比较。

  • 如果没有 valueOf() 操作符,则调用 toString() 方法,取得结果后再根据前面的规则执行比较。

  • 如果有任一操作数是布尔值,则将其转换为数值再执行比较。

相等操作符

相等操作符用(==)表示,全等操作符用(===)表示。需要注意的是,相等操作在比较前会执行类型转换,而全等操作不会执行类型转换。所以全等操作符会比较数据类型。

条件操作符

条件操作符就是三目运算符

    let max = (num1 > num2) ? num1 : num2;

赋值操作符

除了最简单的赋值操作符以外,还有一些复合赋值操作符:

  • 乘后赋值(*=)
  • 除后赋值(/=)
  • 取模后赋值(%=)
  • 加后赋值(+=)
  • 减后赋值(-=)
  • 左移后赋值(<<=)
  • 右移后赋值(>>=)
  • 无符号右移后赋值(>>>=)

逗号操作符

逗号操作符用(,)表示,可以用来在一条语句执行多个操作:

    let a = 1,b = 2,c = 3;

但是需要注意的是逗号操作符的特殊行为:

    let a = (1,2,3,4,5,6,10);
    console.log(a);                 //a的值为10