Menyingkap Tujuan Tanda Seru dalam Ungkapan Fungsi
Dalam JavaScript, apabila melaksanakan kod, menemui tanda seru (!) sebelum sesuatu fungsi boleh menimbulkan beberapa persoalan. Mari kita mendalami fungsinya dan peranannya dalam sintaks.
Sintaks JavaScript menentukan bahawa fungsi yang diisytiharkan dalam bentuk "function foo() {}" ialah pengisytiharan fungsi dan memerlukan invocation untuk dilaksanakan. Walau bagaimanapun, pra-memproses pengisytiharan fungsi dengan tanda seru (!) mengubahnya menjadi ungkapan fungsi, yang boleh diikuti dengan kurungan untuk memanggil fungsi dengan serta-merta.
Kod "!function foo() {}() " pada mulanya mungkin kelihatan berlebihan, kerana ia mengisytiharkan fungsi tetapi juga melaksanakannya. Walau bagaimanapun, tanda seru mempunyai dua tujuan di sini:
Walaupun pada asasnya adalah helah sintaksis, teknik ini membenarkan sintaks ringkas untuk ungkapan fungsi yang dipanggil serta-merta (IIFE). Bentuk kod yang lebih jelas ialah: "(function(){})();"
Akhir sekali, tanda seru juga menilai nilai pulangan fungsi dan memaksanya menjadi boolean. Memandangkan IIFE lazimnya tidak memulangkan nilai secara eksplisit, ia mengembalikan nilai yang tidak ditentukan, yang dipaksa kepada benar oleh tanda seru. Hasil boolean ini tidak digunakan secara umum.
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!