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
DDDasal
2024-12-20 13:03:17864semak imbas

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() {}

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

foo()

Sekarang, mari perkenalkan tanda seru:

!function foo() {}();

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() {})()

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:
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