首頁 > web前端 > js教程 > 為什麼 JavaScript 中的某些箭頭函數會回傳「未定義」?

為什麼 JavaScript 中的某些箭頭函數會回傳「未定義」?

Patricia Arquette
發布: 2024-12-18 05:25:09
原創
311 人瀏覽過

Why Do Some Arrow Functions Return `undefined` in JavaScript?

為什麼箭頭函數可能回傳未定義:明確傳回與隱式回傳難題

箭頭函數為在JavaScript 中定義函數提供了簡潔的語法。然而,在處理括號({})包裹的函數體時,初學者經常會遇到一個奇怪的問題:為什麼這些箭頭函數會傳回 undefined?

考慮下面的簡化範例:

const f = arg => { arg.toUpperCase(); };
console.log(f("testing")); // undefined
登入後複製

這個箭頭函數的目的是將參數轉換為大寫,但它回傳未定義。原因在於箭頭函數主體周圍的可選大括號。

與簡潔主體(不帶大括號)的箭頭函數不同,主體表達式是隱式傳回的,具有函數主體語法的箭頭函數需要一個明確傳回語句。在原始範例中,缺少明確傳回會導致傳回 undefined 而不是大寫參數。

要修正此問題,您可以使用明確回傳:

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

或使用簡潔的正文:

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

明確回傳且簡潔的範例body:

const f1 = arg => { return arg.toUpperCase(); };
console.log(f1("testing"));

const f2 = arg => arg.toUpperCase();
console.log(f2("testing"));
登入後複製

透過遵守這些規則,您可以確保箭頭函數始終傳回預期值,無論是透過明確傳回還是隱式傳回。

以上是為什麼 JavaScript 中的某些箭頭函數會回傳「未定義」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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