Setakat ini, kami tidak membezakan antara pengisytiharan fungsi dan ungkapan fungsi. Malah, penghurai tidak melayan pengisytiharan fungsi dan ungkapan fungsi secara sama rata apabila memuatkan data ke dalam persekitaran pelaksanaan. Penghurai akan terlebih dahulu membaca pengisytiharan fungsi dan menjadikannya tersedia (boleh diakses) sebelum melaksanakan sebarang kod, ia tidak akan benar-benar ditafsirkan dan dilaksanakan sehingga penghurai mencapai baris kod di mana ia berada. Contoh berikut:
Kod adalah seperti berikut:
alert(sum(10,10)); function sum(num1,num2) { return num1+num2; }
Kod di atas boleh dilaksanakan dengan betul, kerana sebelum kod bermula melaksanakan, penghuraian Pengisytiharan Fungsi telah dibaca dan ditambah pada persekitaran pelaksanaan melalui proses yang dipanggil pengisytiharan fungsi mengangkat. Apabila menilai kod, enjin JavaScript mengisytiharkan fungsi pada laluan pertama dan meletakkannya di bahagian atas pepohon sumber. Jadi, walaupun kod yang mengisytiharkan fungsi berada di belakang kod yang memanggilnya, enjin JavaScript boleh menaikkan pengisytiharan fungsi ke atas. Jika, seperti yang ditunjukkan dalam contoh berikut, pengisytiharan fungsi di atas ditukar kepada ungkapan fungsi yang setara, ralat akan berlaku semasa pelaksanaan.
Kod adalah seperti berikut:
alert(sum(10,10)); var sum=function(num1,num2) { return num1+num2; };
Kecuali fakta bahawa fungsi itu boleh diakses melalui pembolehubah semasa pengisytiharan, sintaks pengisytiharan fungsi dan ungkapan fungsi sebenarnya adalah setara daripada.
Nota: Anda juga boleh memanggil pengisytiharan fungsi dan ungkapan fungsi pada masa yang sama, seperti var sum=function sum(){}. Walau bagaimanapun, sintaks ini akan menyebabkan ralat dalam Safari.
Di atas adalah keseluruhan kandungan artikel ini, saya harap ia akan membantu semua orang yang belajar javascript.
Untuk lebih banyak tutorial berkaitan, sila lawati tutorial javascript