Javascript 为什么1/0=无穷大而1/-0=无穷大

Javascript 为什么1/0=无穷大而1/-0=无穷大,javascript,math,infinity,Javascript,Math,Infinity,为什么会这样: 1 === 1;// true 0 === -0;// true 1/0 === 1/-0;// false 原因: 1/0=Infinite; 1/-0=-Infinite; 问题: 为什么1/0或1/-0不是未定义的 它不可能是无穷大或-无穷大,因为0等于-0,所以我应该说1/0等于1/-0,但为什么不是呢?以及为什么它不是未定义的(我的计算器所说的)或NaN 这是因为政府是这样定义的 然而,有一个理由可以证明这一点:该公式将实数扩展为两个无穷大,这为计算提供了更多的空间

为什么会这样:

1 === 1;// true
0 === -0;// true
1/0 === 1/-0;// false
原因:

1/0=Infinite;
1/-0=-Infinite;
问题:

为什么1/0或1/-0不是未定义的

它不可能是无穷大或-无穷大,因为0等于-0,所以我应该说1/0等于1/-0,但为什么不是呢?以及为什么它不是未定义的(我的计算器所说的)或NaN

这是因为政府是这样定义的

然而,有一个理由可以证明这一点:该公式将实数扩展为两个无穷大,这为计算提供了更多的空间。因此,通过这个扩展,零除不是
未定义的
NaN

对于正x,考虑以下情况:

边缘→0(x)=limx→0(-x)

但是,对于正x,以下情况不正确:

边缘→0(1/x)=limx→0(1/-x)

请注意上面使用极限符号的比较如何映射到您列出的比较:

0 === -0;// true
1/0 === 1/-0;// false
其次,除法始终保持以下不变性:当且仅当其中一个操作数为负时,结果为负

这两个考虑因素都为IEEE 754中的原因提供了一些依据:

1/0 === Infinity
1/-0 === -Infinity

因为IEEE-754是这样说的。可能是重复的,因为规范是这样说的。不要把任何数学意义理解进去,这只是一个惯例,它被认为(对程序员来说)比alternativesNaN=不是一个数字更有用,但在这个操作中,您使用的是数字,所以将两个数字相除并得到一个“不是一个数字”的结果是没有意义的。相关:and。