JavaScript Functions, Processes, and Execution

การเชี่ยวชาญ JavaScript จำเป็นต้องเข้าใจว่าโค้ดทำงานอย่างไร

นี่คือแนวคิดหลักที่คุณจำเป็นต้องรู้

1. ประเภทของฟังก์ชัน JavaScript 5 แบบ

2. Process vs. Thread

Process คือโปรแกรมที่กำลังทำงานอยู่ แต่ละ process จะมีหน่วยความจำ (memory) เป็นของตัวเอง หาก Chrome ค้างหรือปิดตัวลง Spotify ก็ยังคงทำงานต่อไปได้เพราะทั้งคู่เป็นคนละ process กัน

Thread คือหน่วยย่อยที่อยู่ภายใน process โดย thread ต่างๆ จะใช้หน่วยความจำร่วมกัน ทำให้ทำงานได้รวดเร็วและใช้ทรัพยากรน้อยกว่า process

3. Synchronous vs. Asynchronous

JavaScript เป็นแบบ single-threaded ซึ่งโดยปกติจะทำงานทีละหนึ่งงานเท่านั้น

Synchronous Execution: งานจะทำงานตามลำดับที่เคร่งครัด บรรทัดถัดไปจะต้องรอให้บรรทัดปัจจุบันทำงานเสร็จสิ้นก่อน ซึ่งอาจทำให้แอปของคุณช้าลงหากมีงานใดงานหนึ่งใช้เวลานานเกินไป

Asynchronous Execution: งานสามารถเริ่มทำงานตอนนี้และไปเสร็จสิ้นในภายหลังได้ วิธีนี้ช่วยป้องกันไม่ให้โค้ดของคุณเกิดการหยุดชะงัก (blocking)

หลักการทำงาน:

ตัวอย่างลำดับการทำงานแบบ Asynchronous:

  1. แสดงผล "Hi"
  2. เริ่มตัวจับเวลา 2 วินาที
  3. แสดงผล "End"
  4. (ผ่านไป 2 วินาที) แสดงผล "Vicky"

โค้ดจะไม่รอตัวจับเวลา แต่จะข้ามไปทำงานที่ "End" ทันที

Source: https://dev.to/kamalesh_ar_6252544786997/types-of-function-and-threads-process-and-synchronous-vs-asynchronous-in-javascript-1hhd

Optional learning community: https://t.me/GyaanSetuAi