加减性操作-减法(-)

减法(-)

与加法操作符都类似,同样需要遵循一些特殊的规则,如下:

  •如果两个操作数都是数值,执行常规的算术减法操作并返回结果;

  •如果有一个操作数是NaN,则返回的结果是NaN;

  •如果是Infinity减Infinity,则结果是NaN;

  •如果是-Infinity减-Infinity,则结果是NaN;

  •如果Infinity减-Infinity,这结果是Infinity;

  •如果-Infinity减Infinity,则结果是-Infinity;

  •如果是+0减+0,结果是+0;

  •如果是+0减-0,则结果实-0;

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

  •如果有一个操作数是字符串、布尔值、null或undefined,则现在后台调用Number()函数将其转换为数值,然后根据前面的规则执行减法计算。如果转换的结果是NaN,则减法的结果就是NaN;

  •如果有一个操作数是对象,则调用对象的valueOf()方法取得表示该对象的数值。如果得到的值是NaN,则减法的结果就是NaN。如果对象么有valueOf()方,则调用toString()方法并将得到的字符串转换为数值。

下面几个例子展示了上面的规则:

var result1=5-true;//4,因为true被转换成1
var result2=NaN-1;//NaN
var result3=5-3;//2
var result4=5-"";//5,因为“”被转换成了0
var result5=5-"2";//3,因为“2”被换成成了2
var result6=5-null;//5,因为null被转成了0

 

posted @ 2015-05-27 16:24  一日三餐  阅读(185)  评论(0编辑  收藏  举报