Rumah > hujung hadapan web > tutorial js > Apakah yang dilakukan oleh Tanda Seru dalam Ungkapan Fungsi JavaScript?

Apakah yang dilakukan oleh Tanda Seru dalam Ungkapan Fungsi JavaScript?

DDD
Lepaskan: 2024-12-20 13:03:17
asal
935 orang telah melayarinya

What Does the Exclamation Mark Do in JavaScript Function Expressions?

Tanda Seru Enigmatik dalam Ungkapan Fungsi JavaScript

Dalam bidang kod JavaScript, anda mungkin telah menemui pemandangan yang ingin tahu: tanda seru sebelum pengisytiharan fungsi. Ini seolah-olah不起眼的符号 mempunyai kepentingan yang mendalam yang mengubah sifat fungsi itu.

Tanda seru, !, mengubah pengisytiharan fungsi menjadi ungkapan fungsi. Ini bermakna fungsi itu kini dianggap sebagai nilai yang boleh diberikan kepada pembolehubah, diluluskan sebagai hujah atau malah dikembalikan daripada fungsi lain.

Untuk memahami implikasi, pertimbangkan kod berikut:

function foo() {}
Salin selepas log masuk

Ini ialah pengisytiharan fungsi standard, yang hanya mentakrifkan fungsi tetapi tidak memanggilnya. Untuk benar-benar melaksanakan fungsi, anda akan memanggilnya seperti ini:

foo()
Salin selepas log masuk

Sekarang, mari perkenalkan tanda seru:

!function foo() {}();
Salin selepas log masuk

Tambahan yang kelihatan tidak berbahaya ini mengubah permainan bola. Tanda seru menukarkan pengisytiharan fungsi menjadi ungkapan, yang kini boleh digunakan serta-merta dengan menambahkan kurungan. Keutamaan kurungan adalah lebih tinggi daripada tanda seru, jadi kod tersebut dilaksanakan sebagai:

(function foo() {})()
Salin selepas log masuk

Ini pada asasnya menyelesaikan tugas yang sama seperti seruan eksplisit dalam contoh sebelumnya. Walau bagaimanapun, ia menawarkan kelebihan halus: ia menjimatkan bait setiap ungkapan fungsi.

Selain itu, tanda seru juga berfungsi untuk tujuan lain. Ia memaksa ungkapan untuk mengembalikan nilai boolean berdasarkan nilai pulangan fungsi. Walau bagaimanapun, dalam kes ungkapan fungsi yang digunakan serta-merta (IIFE), nilai pulangan biasanya tidak ditentukan, menjadikan hasil ungkapan benar. Nilai boolean ini biasanya tidak digunakan, tetapi ia tetap merupakan kesan sampingan yang ingin tahu daripada kehadiran tanda seru.

Atas ialah kandungan terperinci Apakah yang dilakukan oleh Tanda Seru dalam Ungkapan Fungsi JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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