JavaScript基本概念之操作符——乘性操作符

ECMAScript定义了3个乘性操作符:乘法(*)、除法(/)和求模(%)。操作数在非数值的情况下会执行自动的类型转换(后台会先用Number()转型函数将其转换为数值)。

  • 1. 乘法
var result = 34*56;

在处理特殊值的情况下,乘法操作符遵循下列特殊的规则:

  • 如果操作数都是数值,执行常规的乘法计算,如果乘积超过了ECMAScript数值的表示范围,则返回Infinity-Infinity;
  • 如果有一个是是NaN,那么结果就是NaN;

  • 如果是Infinity与0相乘,则结果是NaN;

  • 如果是Infinity与非0相乘,则结果是Infinity-Infinity;

  • 如果是InfinityInfinity相乘,则结果是Infinity

  • 如果有一个操作数不是数值,则在后台调用Number()将其转换为数值,然后在应用上面的规则。

  • 2. 除法

var result = 66 / 11;

在处理特殊值的情况下,除法操作符遵循下列特殊的规则:

  • 如果操作数都是数值,执行常规的除法计算,如果商超过了ECMAScript数值的表示范围,则返回Infinity-Infinity;
  • 如果有一个是是NaN,那么结果就是NaN;
  • 如果是InfinityInfinity除,则结果是NaN;
  • 如果是0被0除,则结果是NaN;
  • 如果是非0的有限数被0除,则结果是Infinity-Infinity;
    -如果是Infinity被任何非0数值除,则结果是Infinity-Infinity;
  • 如果有一个操作数不是数值,则在后台调用Number()将其转换为数值,然后在应用上面的规则。
  • 3. 求模
var result = 26 % 5;             //1

在处理特殊值的情况下,求模操作符遵循下列特殊的规则:

  • 如果操作数都是数值,执行常规的除法计算,返回除得的余数;
  • 如果被除数是无穷大而除数是有限大数值,则结果是NaN;
  • 如果被除数是有限大而除数是0,则结果是NaN;
  • 如果是InfinityInfinity除,则结果是NaN;
  • 如果被除数是有限大而除数是无穷大数值,则结果是被除数;
    -如果被除数是0,则结构是0;
  • 如果有一个操作数不是数值,则在后台调用Number()将其转换为数值,然后在应用上面的规则。

你可能感兴趣的:(JavaScript基本概念之操作符——乘性操作符)