リファレンスを見ると「+0」と「-0」が何度も明確に区別して書かれています。ECMAScriptの仕様書ですが。
ECMAScript 2015 Language Specification – ECMA-262 6th Edition
コンピュータですので仮数部が0で符号を+か-のどちらかにせざるを得ないので、内部表現として「+0」と「-0」が存在するのは分かります。しかし言語仕様としても「+0と-0」を区別して表現するものなのかと違和感がありました。
少なくとも、「内部表現として本来は+0と-0があるけど、実際には+0しか使わないよ」などとということはなさそうで、状況によって変わることがあることを示唆していると感じました。つまり、内部表現にとどまらない明確な違いが表出する場合があるはずと。
で、どうやったら違いが出るのかといくつか試したのですが
lang
1console.log(+0 === -0); 2console.log(parseInt("+0") === parseInt("-0"));
ではどちらもtrueになります。
lang
1console.log((+0).toString()); 2console.log((-0).toString());
はどちらも「0」になります。
なので、違いが分かりません。
質問1
・現実問題として「+0」になる場合と「-0」になる場合が明確に存在するのでしょうか?あるかもしれないしないかもしれない、という程度の話なのでしょうか?あるいは明確に「ない」のでしょうか?
質問2
・違いがあるとして、どのようにしたら違いを確認できますか?
よろしくお願いします。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/06/19 09:25