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!