今日、
Math.atan2関数は、0を渡す符号に応じて異なる結果を返すことが
わかりました。
> 0 === -0 // => true
> Math.atan2(0, -0) // => 3.141592653589793
> Math.atan2(-0, -0) // => -3.141592653589793
これは、JavaScriptが
IEEE 754標準に従って数値を保存するために機能します
。IEEE754標準では、ゼロを含むすべての数値が署名されます。 昨日、特定の
Allen Wirfs-Brockが同じ機能に注目を集めました。 その検証方法はさらに簡単です:
function isNegative0(n) {
return n === 0 && (1 / n) === -Infinity
}
もちろん、これについて実用的な利点はありませんが、言語に関する深い知識を証明する以外にはありません。