最近,我發現了 JavaScript 中引入的新安全賦值運算子 (?.=),我對它的簡單性著迷。 ?
安全賦值運算子 (SAO) 是傳統 try...catch 區塊的簡寫替代方案。它允許您內聯捕獲錯誤,而無需為每個操作編寫明確的錯誤處理程式碼。這是一個例子:
const [error, response] ?= await fetch("https://api.example.com/data");
就是這樣!就是這麼簡單。如果取得請求拋出錯誤,它會自動儲存在錯誤常數中;否則,回應將保留結果。很酷吧?
但是等等…還有更多。
使用 SAO 時,您仍需要進一步處理錯誤,如下所示:
async function getData() { const [requestError, response] ?= await fetch("https://api.example.com/data"); if (requestError) { handleRequestError(requestError); return; } const [parseError, json] ?= await response.json(); if (parseError) { handleParseError(parseError); return; } const [validationError, data] ?= validation.parse(json); if (validationError) { handleValidationError(validationError); return; } return data; }
雖然 SAO 簡化了錯誤處理,但它可能會導致更冗長的程式碼。與傳統的 try...catch 區塊進行比較:
async function getData() { try { const response = await fetch("https://api.example.com/data"); const json = await response.json(); const data = validation.parse(json); return data; } catch (error) { handleError(error); return; } }
在這種情況下,try...catch 只需要 9 行程式碼,而 SAO 大約是它的兩倍。
那麼,你覺得怎麼樣?安全賦值運算子是否可以節省時間,或者是否會增加不必要的複雜度?
以上是試...捕捉 V/s 安全分配 (?=):現代發展的福音還是詛咒?的詳細內容。更多資訊請關注PHP中文網其他相關文章!