2026-11-02

map(parseInt) 為什麼出現 NaN?JavaScript 進位參數與整數驗證

JavaScript 把字串陣列交給 map(parseInt),第二個 index 會被當成 radix,造成 NaN 或意外的進位轉換。本文重現逐筆參數,比較明確指定十進位與 Number 的差異,再提供拒絕空字串、單位尾碼及不安全整數的檢查,避免把轉換成功誤認成輸入有效。

794 字 4 分鐘
2026-10-31

Flex overflow: auto 不捲動?從巢狀祖先檢查 min-height: 0

Flex 直向版面設了 overflow: auto,內容卻撐出整頁,問題可能在上層仍不願縮小。本文提供三組可下載的 HTML 對照,分開驗收外層高度、巢狀 Flex item 的最小高度與真正捲動區,避免只加 overflow: hidden 裁掉內容,也不把 min-height: 0 當成所有版面的通用修復。

1227 字 6 分鐘
2026-10-31

async filter 為什麼全部保留?JavaScript 非同步篩選的兩種寫法

JavaScript filter 不會等待 async callback,回傳的 Promise 會被當成真值,連 false 都可能留下。本文用可執行範例重現問題,比較 for...of 循序篩選與 Promise.all 並行判定,並檢查保留順序、空陣列與拒絕行為,避免把查詢失敗誤判為不符合條件。

979 字 5 分鐘