block คือ code ที่อยู่ในวงเล็บปีกกา { }
scope คือ บริเวณที่เราประกาศตัวแปร
scope จะสัมพันธ์กับ block เพราะถ้าตัวแปรไม่อยู่ด้านใน block ก็อยู่ด้านนอก block
Global Scope

global scope คือ ส่วนของโปรแกรมที่ตัวแปรถูกสร้างอยู่ด้านบอก block เรียกตัวแปรนี้ว่า global variable
เพราะตัวแปรไม่ได้อยู่ด้านใน block จึงสามารถอ้างถึงตัวแปรนั้นจากส่วนไหนของโปรแกรมก็ได้
Block Scope

block scope คือ ตัวแปรที่อยู่ด้านใน block เรียกตัวแปรนี้ว่า local variable
สามารถอ้างถึง local variable ได้จากใน block ของมันเท่านั้น
Global namespace
เมื่อเราประกาศ global variable ตัวแปรที่ประกาศจะไปอยู่ใน global namespace และ global namespace จะอนุญาตให้ตัวแปรถูกอ้างถึงจากส่วนไหนในโปรแกรมก็ได้
Scope pollution
scope pollution หรือ global namespace pollution คือ สถานการณ์ที่เรามี global variable หลายตัวมากเกินไป หรือ ในสถานการณ์ที่เรานำตัวแปรจาก scope หนึ่งมาใช้มาใช้ในอีก scope หนึ่ง ส่งผลให้เกิดตัวแปรที่ซ้ำกัน และเป็นเหตุให้โปรแกรมทำงานผิดพลาดหรือเกิด error