2016-03-20 7 views
6
var a = 0; 
var b = -a; 

は私がtrueました:なぜ0 === -0は真ですが、1/0 === 1/-0は偽ですか?私はコンソールに次のコードを投稿する

console.log(a === b); // true 

をしかし、私はそれにいくつかの計算を行うとき、私はfalseを得た:

console.log(1/a === 1/b); // false 

それがそうであるのはなぜ?

+7

'Infinity'と' -Infinity'が等しくないので、 – jonrsharpe

+0

@jonrsharpe、数学的に言えば1/0!=無限大。これは未定義です。 –

+5

私はこの質問をd​​ownvotingするための本当に強い理由が表示されていません。はい、コンソールで '1/0'と' 1/-0'を試してみると 'Infinity'と' -Infinity'が表示され、仕様を見ると '0 'と' -0'は等しいとみなされ、 'Infinity'と' -Infinity'は同じではありません。しかし、それは複雑な領域です、それについて尋ねることは不合理なようではありません。 –

答えて

7

Infinity == -Infinityが抽象的な等価比較アルゴリズムのようにfalseであるためです。

1/01/-0-Infinity利回り同時にInfinityが得られます。だから両者は等しくないので、falseを返します。

関連する問題