解碼JavaScript 的日期月份之謎
在JavaScript 中,Date 構造函數中的不匹配月份之謎激發了人們的好奇心。令人困惑的是,用月份值 9 構造的日期返回十月,而不是預期的九月。
深入研究 JavaScript 的內部運作原理,我們會遇到這種差異背後的基本邏輯。與常見約定不同,JavaScript 的 Date 物件定義從 0 開始的月份。因此,所提供的值 9 被解釋為第十個月,對應於十月。
這個微妙的設計決策得到了Mozilla 開發者網絡的證實( MDN):
月份
代表月份的整數值,從0 開始表示1 月到11 表示12 月。
進一步的確認來自於語言規範本身:
- 設mn 為?(ℝ(m) modulo 12).
這個數學公式有效地將月份值以12 為模數包裹起來,確保它始終落在0 到11 的範圍內。
因此,程式碼中提供的月份值會根據 JavaScript 的月份定義正確轉換為對應的 10 月.
以上是為什麼 JavaScript 中 `new Date(2023, 9)` 回傳十月?的詳細內容。更多資訊請關注PHP中文網其他相關文章!