ประเภทของฟังก์ชันใน JavaScript
ฟังก์ชันเป็นสิ่งสำคัญใน JavaScript ช่วยจัดระเบียบโค้ดของคุณ ลดการเขียนโค้ดซ้ำซ้อน และทำให้โปรแกรมดูแลรักษาได้ง่ายขึ้น
ให้ลองนึกภาพว่าฟังก์ชันคือเครื่องจักร คุณใส่ข้อมูลนำเข้า (input) เข้าไป เครื่องจักรจะทำงานตามหน้าที่ และให้ผลลัพธ์ (output) กลับมา
นี่คือประเภทต่างๆ ของฟังก์ชันที่คุณควรทราบ:
• Function Declaration คือฟังก์ชันที่มีชื่อ และรองรับการทำ hoisting ตัวอย่าง: function greet() { console.log("Hello World"); }
• Function Expression คือการเก็บฟังก์ชันไว้ในตัวแปร ตัวอย่าง: const greet = function() { console.log("Hello"); };
• Anonymous Function ฟังก์ชันที่ไม่มีชื่อ มักจะทำงานเพียงครั้งเดียวแล้วหายไป
• Arrow Function ไวยากรณ์แบบสั้นที่ถูกนำเข้ามาใน ES6 และเป็นที่นิยมใช้ใน React ตัวอย่าง: const add = (a, b) => a + b;
• Parameters และ Arguments Parameters คือตัวแปรที่ใช้ระบุตำแหน่ง (placeholders) ส่วน Arguments คือค่าจริงที่คุณส่งเข้าไป ตัวอย่าง: function greet(name) { // name คือ parameter console.log(name); } greet("John"); // "John" คือ argument
• Return Function ฟังก์ชันที่ส่งค่ากลับไปยังผู้เรียกใช้งาน ช่วยให้คุณสามารถนำผลลัพธ์ไปใช้ซ้ำได้
• Callback Function ฟังก์ชันที่ถูกส่งเข้าไปเป็น argument ให้กับอีกฟังก์ชันหนึ่ง
• Higher Order Function ฟังก์ชันที่รับฟังก์ชันอื่นเข้ามา หรือส่งคืนฟังก์ชันอื่นออกไป
• IIFE (Immediately Invoked Function Expression) ฟังก์ชันที่ทำงานทันทีที่ถูกสร้างขึ้น
• Constructor Function ใช้สำหรับสร้างออบเจกต์ (object) จำนวนมากจากแม่แบบ (template) เดียวกัน
• Recursive Function ฟังก์ชันที่เรียกใช้งานตัวเอง
• Generator Function
สร้างค่าออกมาทีละค่าโดยใช้ keyword yield
• Async Function
ใช้สำหรับงานอย่างเช่นการเรียก API ช่วยให้คุณสามารถใช้ keyword await เพื่อจัดการกับช่วงเวลาที่ต้องรอได้
• Nested Function ฟังก์ชันที่ถูกนิยามไว้ภายในอีกฟังก์ชันหนึ่ง โดยฟังก์ชันตัวในจะสามารถมองเห็นตัวแปรจากฟังก์ชันตัวนอกได้
• Pure Function ฟังก์ชันที่ให้ผลลัพธ์เดิมเสมอเมื่อได้รับ input เดิม และจะไม่เปลี่ยนแปลงข้อมูลภายนอก
• Rest Parameter Function ใช้จุดสามจุด (...) เพื่อรับ argument จำนวนเท่าใดก็ได้ เปรียบเสมือนตะกร้าช้อปปิ้งที่สามารถใส่ของลงไปได้ไม่จำกัดจำนวน
Source: https://www.geeksforgeeks.org/javascript/functions-in-javascript/ Optional learning community: https://dev.to/annapoo/types-of-functions-in-javascript-105