Rumah >hujung hadapan web >tutorial js >Mengapakah Anak Panah Berfungsi dengan Pendakap Kerinting Kembali `undefined` Melainkan Dipulangkan Secara Eksplisit?

Mengapakah Anak Panah Berfungsi dengan Pendakap Kerinting Kembali `undefined` Melainkan Dipulangkan Secara Eksplisit?

Susan Sarandon
Susan Sarandonasal
2024-12-20 09:33:10860semak imbas

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

Fungsi Anak Panah: Memahami Nilai Pulangan Yang Hilang

Dalam bidang JavaScript, fungsi anak panah telah muncul sebagai pilihan popular untuk ringkas dan ekspresif kod. Walau bagaimanapun, masalah biasa boleh timbul apabila menggunakan versi badan fungsi (dengan pendakap kerinting).

Isu: Nilai Pulangan Hilang

Pertimbangkan fungsi anak panah berikut:

const f = arg => { arg.toUpperCase(); };

Apabila dipanggil, fungsi ini mengembalikan tidak ditentukan dan bukannya nilai yang dijangkakan. Mengapa begitu?

Menyingkap Pemulangan Tersirat

Dalam fungsi anak panah, pernyataan pemulangan digunakan secara tersirat apabila menggunakan badan ringkas (tanpa pendakap kerinting). Ini bermakna hasil ungkapan dalam kurungan menjadi nilai yang dikembalikan.

Contoh Isi Ringkas:

const f = arg => arg.toUpperCase();

Sekarang, menggunakan fungsi ini mengembalikan rentetan yang diingini:

console.log(f("testing")); // "TESTING"

Pulangan Eksplisit untuk Fungsi Badan

Walau bagaimanapun, apabila menggunakan pendakap kerinting, pernyataan pemulangan yang jelas diperlukan untuk menunjukkan perkara yang perlu dikembalikan. Jika tidak, fungsi itu akan kembali tidak ditentukan.

Contoh Pulangan Eksplisit:

const f = arg => { return arg.toUpperCase(); };

Menggunakan fungsi yang diubah suai ini menghasilkan hasil yang sama:

console.log(f("testing")); // "TESTING"

Ingat: Pulangan tersirat wujud dalam badan anak panah yang ringkas fungsi, manakala pemulangan eksplisit diperlukan apabila menggunakan pendakap kerinting untuk badan fungsi. Memahami perbezaan ini adalah penting untuk mengelakkan nilai yang tidak ditakrifkan yang tidak dijangka dalam kod anda.

Atas ialah kandungan terperinci Mengapakah Anak Panah Berfungsi dengan Pendakap Kerinting Kembali `undefined` Melainkan Dipulangkan Secara Eksplisit?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn