พื้นฐาน JavaScript: Callbacks, Objects และ Execution
JavaScript ทำงานได้สองรูปแบบคือ: synchronous และ asynchronous
โค้ดแบบ synchronous จะทำงานทีละบรรทัด โดย engine จะทำงานหนึ่งอย่างให้เสร็จสิ้นก่อนที่จะเริ่มงานถัดไป ซึ่งจะขัดขวาง (block) ไม่ให้งานถัดไปทำงานได้ทันที
โค้ดแบบ asynchronous ช่วยให้งานต่างๆ สามารถทำงานแยกจากกันได้ คุณสามารถเริ่มงานหนึ่งแล้วข้ามไปทำงานถัดไปได้ในระหว่างที่รอ ซึ่งช่วยเพิ่มประสิทธิภาพให้กับเว็บแอปพลิเคชัน
แนวคิดหลักของ asynchronous: • Callbacks: ฟังก์ชันที่ถูกส่งเข้าไปในอีกฟังก์ชันหนึ่งเพื่อเรียกใช้งานในภายหลัง • Promises: ออบเจกต์ที่แสดงถึงผลลัพธ์ของการทำงาน • Async/Await: ไวยากรณ์สมัยใหม่ที่ช่วยให้โค้ดแบบ asynchronous อ่านง่ายขึ้น • Event Loop: ระบบที่จัดการการทำงานของงานต่างๆ
ทำความเข้าใจเรื่อง Processes และ Threads
Process คือโปรแกรมที่กำลังทำงานอยู่ • Processes มีความเป็นอิสระต่อกัน (isolated) • ไม่ใช้หน่วยความจำ (memory) ร่วมกัน • Process สามารถสร้าง child processes ได้ • ใช้เวลาในการสิ้นสุดการทำงาน (terminate) นานกว่า
Thread คือส่วนหนึ่งของ process • หนึ่ง process สามารถมีได้หลาย thread • Threads ใช้หน่วยความจำร่วมกัน • ใช้เวลาในการสิ้นสุดการทำงาน (terminate) น้อยกว่า
Callback Function คืออะไร?
Callback คือฟังก์ชันที่ถูกส่งเข้าไปเป็น argument โดยฟังก์ชันภายนอกจะเรียกใช้ callback นี้เพื่อทำงานให้เสร็จสิ้น ใช้ callback สำหรับ: • งานแบบ asynchronous เช่น การดึงข้อมูล (fetching data) • การจัดการเหตุการณ์ (event handling) เช่น การคลิกปุ่ม • การสร้างโค้ดที่นำกลับมาใช้ใหม่ได้ (reusable code)
JavaScript Objects
Object จะเก็บข้อมูลในรูปแบบคู่ key-value โดยที่ key จะเป็นตัวระบุค่า (value) ซึ่งค่าเหล่านี้อาจเป็นข้อมูลพื้นฐาน (primitives), object อื่นๆ หรือฟังก์ชันก็ได้
คุณสามารถสร้าง object ได้สองวิธี:
Object Literals: ใช้เครื่องหมายปีกกาเพื่อกำหนดคุณสมบัติ (properties) ตัวอย่าง:
let user = {name: "Sourav", age: 23};Object Constructor: ใช้คำสั่ง
new Object()ตัวอย่าง:let user = new Object();
Object สามารถเปลี่ยนแปลงค่าได้ (mutable) คุณสามารถเพิ่ม เปลี่ยนแปลง หรือลบคุณสมบัติได้ตลอดเวลา ซึ่งช่วยให้คุณจัดกลุ่มข้อมูลที่เกี่ยวข้องกันไว้ด้วยกันได้