+function () {} ();เครื่องหมายบวกที่นี่สามารถถูกแทนที่ด้วยตัวดำเนินการ unary อื่น ๆ เช่น!, ~ และเอฟเฟกต์เทียบเท่ากับ:
(function () {console.log ("foo!");}) (); // หรือ (function () {console.log ("foo!");} ());หากไม่มีเครื่องหมายบวกนี้ตัวแยกวิเคราะห์จะคิดว่าฟังก์ชั่นเป็นจุดเริ่มต้นของการประกาศฟังก์ชันและภายหลัง () จะทำให้เกิดข้อผิดพลาดทางไวยากรณ์ เมื่อมีการเพิ่มเครื่องหมาย + ก่อนที่ฟังก์ชั่นมันจะกลายเป็นนิพจน์ฟังก์ชันและเมื่อเพิ่ม () หลังจากนิพจน์ฟังก์ชั่นมันจะกลายเป็นฟังก์ชันที่ดำเนินการทันที
มาดูฟังก์ชั่นของจุดอัศเจรีย์ที่ด้านหน้าของฟังก์ชัน JS:
1. แบบฟอร์มการประกาศฟังก์ชัน JS
function fna () {Alert ('msg');} // ฟังก์ชั่นนิยามการประกาศ2. รูปแบบการแสดงออกของฟังก์ชัน JS
var func = function (agr1, arg2) {// สร้างการแจ้งเตือนฟังก์ชันที่ไม่ระบุชื่อ (arg1 + '' + arg2);}3. รูปแบบทั่วไปสำหรับการดำเนินการทันทีหลังจากการประกาศฟังก์ชั่น js ไม่ระบุชื่อ
(function () { / * code * /}) ();อธิบาย
1. คู่แรกของวงเล็บรอบฟังก์ชั่น (ฟังก์ชั่น () {}) ส่งคืนฟังก์ชันที่ไม่มีชื่อไปยังสคริปต์จากนั้นคู่ของวงเล็บที่ว่างเปล่าจะดำเนินการฟังก์ชันที่ไม่มีชื่อที่ส่งคืนทันทีด้วยพารามิเตอร์ของฟังก์ชันที่ไม่ระบุชื่อในวงเล็บ
2. ใช้วงเล็บเพื่อกำหนดฟังก์ชั่นร่างกายและตัวแยกวิเคราะห์จะเรียกฟังก์ชั่นนิยามในรูปแบบของการแสดงออกของฟังก์ชั่น กล่าวอีกนัยหนึ่งวิธีการใด ๆ ที่สามารถเปลี่ยนฟังก์ชั่นเป็นนิพจน์ฟังก์ชั่นสามารถเปิดใช้งานตัวแยกวิเคราะห์เพื่อเรียกใช้ฟังก์ชั่นที่กำหนดไว้อย่างถูกต้อง และ! เป็นหนึ่งในนั้นและ + - || มีฟังก์ชั่นดังกล่าว
3. ฟังก์ชั่นของฟังก์ชั่นนี้ส่วนใหญ่ไม่ระบุชื่อและการดำเนินการอัตโนมัติ