Node.js 推出新版 API 文件預覽站,導入內建搜尋與 llms.txt
Node.js Blog · 2026-07-24
核心改動
Node.js 官方於 2026-07-24 由 Guilherme Araújo 發文,宣布新版 API 文件預覽站上線,網址為 beta.docs.nodejs.org。這是文件產生工具鏈的整體替換,底層改用新開發的 doc-kit 產生器取代舊有的產生流程,但文件內容本身沒有變動,仍然由 nodejs/node repo 內的 Markdown 原始檔產生。新站與 nodejs.org 官網共用同一套設計系統,包含常駐側邊欄模組列表、每頁固定顯示的目錄(TOC)、以及響應式版面。
新站首次提供內建全文搜尋,並支援鍵盤快捷鍵操作,使用者不需再依賴外部搜尋引擎查 API。頁面同時加入預估閱讀時間與公告列,並保留既有功能,例如 ESM/CJS 語法切換、程式碼複製按鈕、穩定度標籤(stability badges)與版本歷史對照。文件在停用 JavaScript 或離線狀態下仍可完整瀏覽。
影響範圍
新站額外提供 nodejs.org/llms.txt 作為給 AI 工具讀取的結構化入口,方便 LLM 類工具解析 API 文件內容。doc-kit 被設計成獨立可重用的工具,官方表示其他專案也能採用同一套產生器建立自己的文件站。目前站台狀態為預覽(beta),問題回報與意見反饋導向 nodejs/doc-kit repo 的 issue 頁面,尚未取代正式文件站。
TC39 新提案將 Error 物件的 code 屬性正式標準化,已進入 Stage 2
TC39 Proposals · 2026-07-22
背景
JavaScript 的 Error 物件長期缺乏標準化的機器可讀識別欄位,各家 runtime 與函式庫各自為政:Node.js 自 v8 起累積超過 200 個 ERR_* 代碼,Deno、Bun 與 axios、Firebase、Stripe、Prisma 等函式庫也各自定義 .code,但寫法互不相容。這份由 James M Snell 主導、Jordan Harband 擔任 reviewer 的提案,目的是把這個實務上早已存在的模式收斂成語言層級規範。
核心改動
提案在 Error 建構子的 options bag 中新增 code 欄位,寫法與現有的 cause 一致:
new Error("something went wrong", { code: "ERR_SOMETHING" })
new TypeError("expected string", {
code: "ERR_INVALID_ARG_TYPE",
cause: original
})code 屬性定義在實例上而非原型鏈,值可為任意型別(不限字串),未提供時預設不存在;屬性本身為不可列舉(non-enumerable),但可寫入、可設定(writable、configurable),行為對齊既有的 cause 屬性設計。
影響範圍
提案明確排除兩件事:不定義 TC39 專屬的錯誤代碼命名空間,也不會回頭替規格內建的錯誤補上 code 值,這些留給未來獨立提案處理。由於 Web 平台過去已經捨棄數字型的 DOMException.code、改用字串 .name,此提案選擇字串優先的識別方式與這個趨勢一致。目前狀態為 Stage 2,尚未進入規格文字凍結階段。
TC39 提案為 JavaScript 補上 IEEE 754 的 Fused Multiply-Add 運算
TC39 Proposals · 2026-07-24
背景
IEEE 754 標準定義六種基本浮點運算:加、減、乘、除、平方根,以及 fused multiply-add(FMA)。前五種 ECMAScript 從一開始就支援,唯獨 2008 年隨 IEEE 754-2008 加入的 FMA 從未被納入語言規範。這份由 Waldemar Horwat 主導的提案要補上這個缺口,目前狀態為 Stage 2,並已有草案規格文字。
核心改動
提案新增 Math.fma(x, y, z),語意為計算 x × y + z 且只在最終結果做一次捨入,中間乘積不捨入,這與一般寫法 x * y + z(會對乘積先捨入一次、加法再捨入一次)在數值上有實質差異。提案文件示範一種典型用法,用來取得兩數精確乘積的高低位元:
let high = a * b
let err = Math.fma(a, b, -high)執行後(在不溢位/不下溢的前提下),high 與 err 合起來即為 a × b 的完整精確值,high 保留高位有效位元,err 保留低位有效位元。
影響範圍
提案指出用純 JS 函式庫模擬 FMA 不切實際,需要數百行緩慢且技巧性極高的程式碼才能達到等效精度,因此只能靠語言或硬體層級支援。常見應用場景包含內積運算、矩陣乘法、多項式求值與神經網路計算。C/C++、Java、C#、Python、Rust、Swift 等主流語言都已提供對應的 IEEE 754 語意 FMA 函式(如 Python 的 math.fma、Rust 的 mul_add),JavaScript 目前仍需仰賴此提案補齊。
原始來源:tc39/proposal-fma