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
Lepaskan: 2024-12-20 09:33:10
asal
896 orang telah melayarinya

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(); };
Salin selepas log masuk

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();
Salin selepas log masuk

Sekarang, menggunakan fungsi ini mengembalikan rentetan yang diingini:

console.log(f("testing")); // "TESTING"
Salin selepas log masuk
Salin selepas log masuk

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(); };
Salin selepas log masuk

Menggunakan fungsi yang diubah suai ini menghasilkan hasil yang sama:

console.log(f("testing")); // "TESTING"
Salin selepas log masuk
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan