Math.min() < Math.max() 返回結果是什麼?為什麼?

王铁柱6發表於2024-12-10

Math.min() < Math.max() 返回 true

原因如下:

  • Math.min() 沒有引數時返回 Infinity: Math.min() 試圖找到提供的數字中最小的一個。當沒有提供任何數字時,它返回 Infinity,因為任何數字都小於 Infinity。 這就像設定一個初始的“最小值”為無限大,然後嘗試找到比它更小的數字。由於沒有提供數字,Infinity 保持不變。

  • Math.max() 沒有引數時返回 -Infinity: Math.max() 的行為與 Math.min() 相反。它試圖找到提供的數字中最大的一個。當沒有提供任何數字時,它返回 -Infinity,因為任何數字都大於 -Infinity。 這就像設定一個初始的“最大值”為負無限大,然後嘗試找到比它更大的數字。由於沒有提供數字,-Infinity 保持不變。

  • Infinity > -Infinity: 正無窮大永遠大於負無窮大。

因此,Math.min() < Math.max() 等價於 Infinity < -Infinity,這顯然是錯誤的。 正確的比較是 Infinity > -Infinity,所以結果是 true

在實際的前端開發中,很少會直接使用沒有引數的 Math.min()Math.max()。通常情況下,你會提供至少一個引數。 如果你確實遇到了沒有引數的情況,並且這個比較的結果很重要,請務必理解其背後的邏輯,以免產生意外的結果。 最好避免這種容易引起誤解的寫法,並明確提供引數給 Math.min()Math.max()

相關文章