JavaScript Scope: Block, Global, และ Function
Scope คือสิ่งที่กำหนดว่าคุณสามารถใช้งานตัวแปรได้ที่ไหนในโค้ดของคุณ
Global Scope ตัวแปรจะอยู่นอกฟังก์ชันหรือบล็อก คุณสามารถเข้าถึงตัวแปรเหล่านี้ได้จากทุกที่ในสคริปต์ของคุณ คำเตือน: ตัวแปร Global อาจทำให้เกิดบั๊กได้ เนื่องจากโค้ดส่วนใดก็ได้สามารถเข้ามาเปลี่ยนแปลงค่าของมันได้
Function Scope ตัวแปรจะอยู่ภายในฟังก์ชัน คุณสามารถเข้าถึงตัวแปรเหล่านี้ได้เฉพาะภายในฟังก์ชันนั้นๆ เท่านั้น
Block Scope สิ่งนี้ใช้กับ JavaScript สมัยใหม่ที่ใช้
letหรือconstโดยตัวแปรจะอยู่ภายในเครื่องหมายปีกกา{}บล็อกประกอบด้วย:
- คำสั่ง if
- ลูป for
- ลูป while
- บล็อกอิสระ
{}
สรุปเรื่อง Scope:
- Global: เข้าถึงได้จากทุกที่
- Function: เข้าถึงได้เฉพาะภายในฟังก์ชันเท่านั้น
- Block: เข้าถึงได้เฉพาะภายในเครื่องหมายปีกกาเท่านั้น
var: ใช้ function scope และไม่สนใจ block scopeletและconst: ใช้ block scope ควรใช้สองตัวนี้เพื่อการเขียนโค้ดที่ดีกว่า
ทำความเข้าใจเรื่อง Process และ Thread
Process คือโปรแกรมที่กำลังทำงานอยู่ซึ่งมีหน่วยความจำเป็นของตัวเอง ลองนึกภาพว่า WhatsApp คือหนึ่ง process
Thread คือส่วนประกอบย่อยของ process โดยที่ thread ต่างๆ จะใช้หน่วยความจำร่วมกัน
- Thread มีน้ำหนักเบา (lightweight)
- สร้างขึ้นได้อย่างรวดเร็ว
- ช่วยให้คุณสามารถทำงานหลายอย่างได้พร้อมกัน
ตัวอย่างของ WhatsApp: หนึ่ง process (WhatsApp) สามารถรันได้หลาย thread:
- รับข้อความ
- ส่งรูปภาพ
- เล่นวิดีโอ
- แสดงการแจ้งเตือน
Source: https://freeacademy.ai/lessons/global-vs-function-vs-block-scope Source: https://josephcardillo.medium.com/the-difference-between-function-and-block-scope-in-javascript-4296b2322abe