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()将其转换为数值,然后在应用上面的规则。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容