Perbedaan Deklarasi Fungsi
Kedua cara mendeklarasikan fungsi setara, tetapi ada perbedaan yang signifikan: fungsi yang dideklarasikan sebagai Function Declaration akan dapat diakses, bahkan jika merujuk padanya sebelum mereka dideklarasikan.
Lihat contoh:
// Merujuk ke fungsi sebelum deklarasinya:
func(); //akan menampilkan '!'
function func() {
console.log('!');
}
Sedangkan ekspresi fungsi dibuat pada saat kode dijalankan dan tidak dapat diakses di atasnya. Oleh karena itu kode seperti ini akan menghasilkan error:
func(); //error, fungsi tersebut belum ada!
let func = function() {
console.log('!');
};
Buatlah fungsi sebagai Function Declaration. Periksa bahwa fungsi tersebut akan dapat diakses di atas tempat deklarasinya.
Buatlah fungsi sebagai Function Expression. Periksa bahwa fungsi tersebut tidak akan dapat diakses di atas tempat deklarasinya.