一般外运算中一个数除以0一般是不成立的但是在javascript中却是infinity(正无穷)var a=4;var b=a/0;if(b==b){ console.log( b * 2 + "2" - 0 + 4);}else { console.log(!b * 2 + "2" - 0 + 4);}我本来以为输出结果也是infinity但是结果却是NaN为什么?求解
1 回答
慕斯709654
TA贡献1840条经验 获得超5个赞
因为这个跟除以0没关系,NaN是因为你用了一个非纯数字的字符串去减一个数字,在JS中 ’-‘操作符会强制将字符串转为数字类型进行运算, b * 2 + "2"
得到"Infinity2"
, 用一个字符串"Infinity2"
减0,肯定会NaN啊,因为Number("Infinity2")
的结果是NaN, 而任何数跟NaN计算都会是NaN。
这里面涉及到JS运算符的强制转换知识,你可以去了解下。
添加回答
举报
0/150
提交
取消