Dalam JavaScript, fungsi boleh ditakrifkan menggunakan sama ada ungkapan atau pengisytiharan. Walaupun kedua-dua pendekatan membenarkan anda membuat blok kod boleh guna semula, ia mempunyai beberapa perbezaan asas dalam cara ia berkelakuan dalam konteks pelaksanaan.
Ungkapan fungsi ialah fungsi tanpa nama yang ditetapkan sebagai nilai kepada pembolehubah atau pemalar. Ia mengikut sintaks:
var foo = function() { return 5; };
Dalam contoh ini, foo ialah fungsi tanpa nama (tiada nama rasmi) yang mengembalikan nilai 5 apabila dipanggil.
Sebaliknya, pengisytiharan fungsi ialah fungsi bernama yang diisytiharkan menggunakan kata kunci fungsi diikuti dengan nama dan parameter pilihan:
function foo() { return 5; }
Dalam kes ini, foo ialah fungsi bernama yang melaksanakan tugas yang sama seperti ungkapan fungsi tanpa nama di atas.
Perbezaan utama antara ungkapan dan pengisytiharan terletak pada cara ia dimuatkan ke dalam konteks pelaksanaan.
// Function Expression alert(foo()); // ERROR! var foo = function() { return 5; };
Dalam contoh ini, alert(foo()) akan membuang ralat kerana foo belum ditakrifkan.
// Function Declaration alert(foo()); // Alerts 5 function foo() { return 5; }
Di sini, alert(foo()) alert 5 kerana pengisytiharan fungsi dimuatkan sebelum sebarang kod dijalankan.
Walaupun ungkapan dan pengisytiharan fungsi berkelakuan serupa dalam kebanyakan kes, terdapat beberapa nuansa yang perlu diberi perhatian:
Atas ialah kandungan terperinci Apakah Perbezaan Utama Antara Perisytiharan dan Ungkapan Fungsi JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!