負のゼロチェック

今日、 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

}








もちろん、これについて実用的な利点はありませんが、言語に関する深い知識を証明する以外にはありません。



All Articles