加减性操作-减法(-)
减法(-)
与加法操作符都类似,同样需要遵循一些特殊的规则,如下:
•如果两个操作数都是数值,执行常规的算术减法操作并返回结果;
•如果有一个操作数是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