Rumah > hujung hadapan web > tutorial js > Analisis ringkas tentang perbezaan antara pengisytiharan fungsi dan ekspresi fungsi dalam kemahiran javascript_javascript

Analisis ringkas tentang perbezaan antara pengisytiharan fungsi dan ekspresi fungsi dalam kemahiran javascript_javascript

WBOY
Lepaskan: 2016-05-16 16:13:53
asal
997 orang telah melayarinya

Terdapat dua cara untuk mengisytiharkan fungsi dalam JavaScript: pengisytiharan fungsi dan ungkapan fungsi.

Perbezaannya adalah seperti berikut:

1). Untuk fungsi yang ditakrifkan oleh pengisytiharan fungsi, nama fungsi diperlukan, manakala nama fungsi ungkapan fungsi adalah pilihan.

2). Untuk fungsi yang ditakrifkan oleh pengisytiharan fungsi, fungsi boleh dipanggil sebelum pengisytiharan fungsi, manakala fungsi ungkapan fungsi hanya boleh dipanggil selepas pengisytiharan.

3). Fungsi yang ditakrifkan oleh pengisytiharan fungsi bukan pengisytiharan sebenar Ia hanya boleh muncul secara global atau bersarang dalam fungsi lain, tetapi ia tidak boleh muncul dalam gelung, keadaan atau cuba/tangkap/ akhirnya masuk, dan

Ungkapan fungsi boleh diisytiharkan di mana-mana sahaja.

Fungsi ditakrifkan dalam dua cara di bawah:

Salin kod Kod adalah seperti berikut:

//Pengisytiharan fungsi
ucapan fungsi(){
console.log("hello world");
}
//Ungkapan fungsi
var salam = function(){
console.log("hello world");
}

Javascript yang menarik di bawah:

Salin kod Kod adalah seperti berikut:

fungsi f() { console.log('Saya di luar!'); (fungsi () {
jika(salah) {
// Ulangi pengisytiharan fungsi f
Fungsi f() { console.log('Saya di dalam!'); }
f();
}());


Apa yang akan menjadi output? Reaksi pertama seharusnya "Saya di luar". .

Hasil keluaran oleh krom jelas mencerminkan ciri-ciri fungsi yang diisytiharkan menggunakan pengisytiharan fungsi-fungsi boleh dipanggil sebelum ia diisytiharkan.

Ralat IE menunjukkan bahawa objek hilang kerana fungsi diisytiharkan dalam keadaan, yang melanggar prinsip pengisytiharan fungsi.

Skop ungkapan fungsi:

Jika fungsi yang diisytiharkan oleh ungkapan fungsi mempunyai nama fungsi, maka nama fungsi adalah bersamaan dengan pembolehubah tempatan fungsi dan hanya boleh dipanggil di dalam fungsi tersebut

Salin kod Kod adalah seperti berikut: var f = fakta fungsi(x) {
Jika (x <= 1)
                       kembali 1;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       pulangkan x*fakta(x-1);
                  };
// Uncaught ReferenceError: fakta tidak ditakrifkan



fact() boleh dipanggil di dalam fungsi, tetapi ralat akan dilaporkan apabila dipanggil di luar fungsi: fact is undefined
Di atas adalah keseluruhan kandungan artikel ini, saya harap anda semua menyukainya.

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan