zoukankan      html  css  js  c++  java
  • 阅读javascript高级程序设计随笔(六)

    2.5.4乘性操作符

    ECMAScript定义了3个乘性操作符:乘法、除法和求模。如果参与乘性计算的某个操作数不是数值,后台会先使用Number()函数将其转换成数值。(空字符串变成0,true变成1)

    1.乘法(*)

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

    #如果操作数都是数值,就执行常规的乘法计算。如果超出了ECMAScript数值的范围,则返回Infinity或-Infinity

    #如果有一个操作数是NaN,则结果是NaN

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

    #如果是Infinity与非0数值相乘,结果是Infinity或-Infinity

    #如果是Infinity与Infinity相乘,则结果是Infinity

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

    2.除法(/)

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

    #如果操作数都是数值,就执行常规的除法计算。如果超出了ECMAScript数值的范围,则返回Infinity或-Infinity

    #如果有一个操作数是NaN,则结果是NaN

    #如果是Infinity除以Infinity相除,则结果是NaN

    #如果是0除以0,结果是NaN

    #如果是非0的有限数除以0,则结果是Infinity或-Infinity

    #如果是Infinity除以非零数,则结果是Infinity或-Inifinity。

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

    3.求模(%)

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

    #如果操作数都是数值,就执行常规的除法计算,取得余数。

    #如果被除数是无穷大而除数是有限大的数值,则结果是NaN

    #如果被除数是有限大而除数是0,则结果是NaN

    #如果是Infinity被Infinity除,则结果是NaN

    #如果被除数是有限大的数值而除数是无穷大的数值,则结果是被除数;

    #如果被除数是0,则结果是0;

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

    2.5.5加性操作

    1.加法(+)

    如果两个操作数都是数值,执行常规的加法计算,然后根据下列规则返回结果:

    #如果有一个操作数是NaN,则结果是NaN

    #如果是Infinity加Inifinity,则结果是Infinity;

    #如果是-Infinity加-Inifinity,则结果是-Infinity

    #如果是Infinity加-Infinity,则结果是NaN

    #如果是+0加+0,则结果是+0;

    #如果是-0加-0,则结果是-0;

    #如果是+0加-0,则结果是+0.

    如果有一个操作数是字符串,那么遵循以下规则:

    #如果两个操作数是字符串,则将第二个操作数与第一个操作数拼接起来

    #如果只有一个操作数是字符串,则将另一个操作数转换为字符串,然后将两个字符串拼接起来

    如果有一个操作数是对象、数值或布尔值,则调用它们的toString()方法取得相应的字符串值。对于undefined和null,则分别调用String()函数并取得"undefined"和"null".

    2.减法(-)

    减法与加法类似,需要遵循以下规则:

    #如果两个操作数都是数值,则按常规的算术减法运算。

    #如果有一个操作数是NaN,则结果是NaN

    #如果是Infinity减Infinity,则结果是NaN

    #如果是-Infinity减Infinity,则结果是-Infinity

    #如果是Infinity减Infinity,则结果是Infinity

    #如果是+0减+0,则结果是+0;

    #如果是+0减-0,则结果是-0;

    #如果是-0减-0,则结果是+0;

    #如果有一个操作数是字符串、布尔值、null或undefined,则先在后台调用Number()函数将其转为数值,然后进行减法运算。

    #如果有一个操作数是对象,则调用对象的valueOf()方法以取得表示对象的数值。如果对象没有valueOf()方法,则调用toString()方法并将得到的字符串转换为数值。

  • 相关阅读:
    sql server profiler 对TextData进行过滤
    简单账表"小计"无法正常显示
    从字符串转换日期和/或时间时,转换失败。
    [转载]Java中的final与static的区别
    POI Excel导出样式设置
    [转载]poi 设置Region后单元格边框不起作用
    [转载]将java程序编译成独立运行的exe文件
    Java 线程安全问题—synchronized锁机制
    彻底理解ThreadLocal
    ThreadLocal封装Connection,实现同一线程共享资源
  • 原文地址:https://www.cnblogs.com/night2013/p/3500777.html
Copyright © 2011-2022 走看看