Rumah > hujung hadapan web > tutorial js > Mengapa Beberapa Fungsi Anak Panah JavaScript Kembali `tidak ditentukan`?

Mengapa Beberapa Fungsi Anak Panah JavaScript Kembali `tidak ditentukan`?

Patricia Arquette
Lepaskan: 2024-12-20 08:36:10
asal
379 orang telah melayarinya

Why Do Some JavaScript Arrow Functions Return `undefined`?

Fungsi Anak Panah dan Pernyataan Pulangan Eksplisit

Dalam JavaScript, fungsi anak panah menyediakan sintaks ringkas untuk mentakrifkan fungsi. Walau bagaimanapun, perangkap biasa menghadapi nilai yang tidak ditentukan apabila memanggil fungsi anak panah yang menggunakan badan blok.

Pertimbangkan fungsi anak panah berikut:

const f = arg => { arg.toUpperCase(); };
Salin selepas log masuk

Walaupun fungsi ini mungkin kelihatan logik, ia kembali tidak ditentukan apabila dipanggil. Untuk memahami sebabnya, kita perlu meneliti semantik fungsi anak panah.

Apabila menggunakan badan blok (dengan pendakap kerinting) dalam fungsi anak panah, tingkah laku pulangan tersirat berbeza daripada badan ringkas (tanpa pendakap kerinting). Dalam versi badan blok, nilai yang dikembalikan oleh fungsi mesti dinyatakan secara eksplisit menggunakan kata kunci pulangan.

const f = arg => { return arg.toUpperCase(); };
Salin selepas log masuk

Dengan pernyataan pulangan eksplisit ini, fungsi mengembalikan nilai yang dijangkakan dengan betul: "UJIAN".

Sebagai alternatif, anda boleh menggunakan sintaks isi ringkas untuk mencapai hasil yang sama secara tersirat:

const f = arg => arg.toUpperCase();
Salin selepas log masuk

Dalam kes ini, ungkapan terakhir dalam badan, arg.toUpperCase(), dikembalikan secara automatik oleh fungsi anak panah.

Oleh itu, untuk mengelakkan nilai yang tidak ditentukan semasa memanggil anak panah berfungsi dengan badan blok, sentiasa nyatakan nilai pulangan dengan jelas menggunakan kata kunci pulangan atau gunakan sintaks isi ringkas.

Atas ialah kandungan terperinci Mengapa Beberapa Fungsi Anak Panah JavaScript Kembali `tidak ditentukan`?. 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