数字除0的运算

一般外运算中一个数除以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为什么?求解

阅读 6.5k
3 个回答

因为这个跟除以0没关系,NaN是因为你用了一个非纯数字的字符串去减一个数字,在JS中 ’-‘操作符会强制将字符串转为数字类型进行运算, b * 2 + "2"得到"Infinity2", 用一个字符串"Infinity2"减0,肯定会NaN啊,因为Number("Infinity2")的结果是NaN, 而任何数跟NaN计算都会是NaN。
这里面涉及到JS运算符的强制转换知识,你可以去了解下。

Infinity + '2'的结果你输出一下估计你就明白了。

infinity 只是告诉你,结果为正无穷,并不表示,infinity 真的表示为一个无穷大的数

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题