首頁 > web前端 > js教程 > 為什麼帶有大括號的箭頭函數返回'undefined”,除非明確返回?

為什麼帶有大括號的箭頭函數返回'undefined”,除非明確返回?

Susan Sarandon
發布: 2024-12-20 09:33:10
原創
857 人瀏覽過

Why Do Arrow Functions with Curly Braces Return `undefined` Unless Explicitly Returned?

箭頭函數:理解缺失的回傳值

在 JavaScript 領域,箭頭函數已成為簡潔且富有表現力的熱門選擇程式碼。然而,使用函數體版本(帶有大括號)時可能會出現一個常見的陷阱。

問題:缺少回傳值

考慮下列箭頭函數:

const f = arg => { arg.toUpperCase(); };
登入後複製

呼叫時,此函數傳回未定義而非預期值。這是為什麼?

揭示隱含回傳

在箭頭函數中,當使用簡潔的函數體(不含花括號)時,會隱含應用 return 語句。這意味著括號內表達式的結果將成為傳回值。

簡明正文範例:

const f = arg => arg.toUpperCase();
登入後複製

現在,呼叫此函數將傳回所需的字串:

console.log(f("testing")); // "TESTING"
登入後複製
登入後複製

函數的明確傳回Body

但是,當使用花括號時,需要明確的 return 語句來指示應該傳回什麼。否則,該函數將傳回未定義。

明確傳回範例:

const f = arg => { return arg.toUpperCase(); };
登入後複製

呼叫此修改後的函數會產生相同的結果:

console.log(f("testing")); // "TESTING"
登入後複製
登入後複製

記住:隱式傳回存在於簡潔的箭頭函數體中,而顯式傳回存在在函數體中使用花括號時需要。理解這種差異對於避免程式碼中出現意外的未定義值至關重要。

以上是為什麼帶有大括號的箭頭函數返回'undefined”,除非明確返回?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板