問 0 的本質:0 和 -0 相同嗎?
ECMAScript 5.1 規範已將 0 和 -0 定義為不同的實體。這就提出了一個問題:為什麼 0 === -0 回傳 true?
IEEE 754 揭示了有符號零的存在
JavaScript 採用 IEEE 754 標準來代表數字。該標準引入了「有符號零」的概念,其中 -0 和 0 均被識別。它是擴展實數軸的變體,允許存在無窮大的不同解釋(1/−0 = −∞ 和 1/ 0 = ∞)。
理論區別,實際平等
雖然0 和-0 在Javascript 的表示中理論上是不同的,但嚴格相等比較第11.9.6 節中的演算法明確要求出於比較目的將0 和-0 視為相等。做出這個決定是為了簡化編碼並避免不必要的複雜性。
關於 Object.is 的說明
隨著 ES2015 的推出,引入了一種新的比較方法:Object 。是。它明確區分 -0 和 0,如 Object.is(-0, 0); // 錯誤的。然而,這種方法通常只建議用於區分有符號零至關重要的特定情況。
以上是為什麼 JavaScript 將 0 和 -0 視為相等,儘管它們的表示方式不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!