Rumah >hujung hadapan web >tutorial js >Mengapa Fungsi Anak Panah Memerlukan Pulangan Eksplisit Apabila Menggunakan Pengisytiharan Blok?

Mengapa Fungsi Anak Panah Memerlukan Pulangan Eksplisit Apabila Menggunakan Pengisytiharan Blok?

Linda Hamilton
Linda Hamiltonasal
2024-12-18 09:54:18316semak imbas

Why Do Arrow Functions Need Explicit Returns When Using Block Declarations?

Mengapa Fungsi Anak Panah Tanpa Pengisytiharan Blok Mesti Mengembalikan Nilai Secara Eksplisit

Fungsi anak panah, yang diperkenalkan dalam ES6, memudahkan sintaks fungsi JavaScript. Walau bagaimanapun, ia boleh berkelakuan berbeza daripada fungsi biasa apabila ia datang untuk mengembalikan nilai.

Pertimbangkan fungsi anak panah berikut dengan pengisytiharan blok (disertakan dalam pendakap kerinting):

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

Menggunakan fungsi ini tidak mengembalikan nilai, mengakibatkan undefined dicetak ke konsol:

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

Tidak seperti biasa fungsi, fungsi anak panah dengan pengisytiharan blok tidak mengembalikan hasil ungkapan blok secara tersirat. Sebaliknya, penyata pulangan eksplisit diperlukan untuk menentukan nilai pulangan. Oleh itu, fungsi anak panah hendaklah ditulis sebagai:

const f = arg => { return arg.toUpperCase(); }; // Explicit 'return' statement

Sebagai alternatif, fungsi anak panah boleh diisytiharkan secara ringkas (tanpa pendakap blok). Dalam kes ini, hasil ungkapan berikutan anak panah dikembalikan secara tersirat:

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

Contoh:

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

const f2 = arg => arg.toUpperCase(); // Concise arrow function
console.log(f2("testing"));

Kedua-dua f1 dan f2 mengembalikan rentetan huruf besar "UJIAN". Dengan memahami perbezaan antara fungsi anak panah dengan dan tanpa pengisytiharan blok, anda boleh memastikan bahawa fungsi anak panah anda mengembalikan nilai yang dijangkakan.

Atas ialah kandungan terperinci Mengapa Fungsi Anak Panah Memerlukan Pulangan Eksplisit Apabila Menggunakan Pengisytiharan Blok?. 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