มาดูรหัสชิ้นหนึ่งก่อน
ฟังก์ชั่นแสดง () {แจ้งเตือน (ABC); } var abc = "defg"; แสดง();ผู้ที่มีประสบการณ์ในการเขียนโปรแกรม C ++ หรือ Java อาจพูดได้ว่า: "โปรแกรมนี้ตายแล้วและตัวแปรถูกกำหนดหลังจากฟังก์ชั่นที่อ้างอิงตัวแปรข้อผิดพลาดจะทำลายคุณ" ถ้าคุณเรียกใช้ในเบราว์เซอร์จะเกิดอะไรขึ้น? วิ่งอย่างสมบูรณ์! ถัดไปเรามาพูดถึงสิ่งที่เกิดขึ้น - ความแตกต่างระหว่างตัวแปรที่มี VAR และไม่มีคำนิยาม VAR
1. ไม่มี var
เพื่อให้ง่ายมันไม่ปลอดภัยที่จะละเว้น var เมื่อกำหนดตัวแปร แต่มันถูกกฎหมาย ในเวลานี้ไม่ว่าตัวแปรจะถูกกำหนดไว้ที่ใดล่ามจะกำหนดขอบเขตของตัวแปรทั่วโลก
2. มี var
ปลอดภัยและถูกกฎหมาย ขอบเขตของตัวแปรที่กำหนดขึ้นอยู่กับตำแหน่งของที่กำหนด สำหรับขอบเขตคือโปรดดูบทความ "JavaScript Scope" ในบล็อกนี้
ด้วยวิธีนี้ปัญหาที่จุดเริ่มต้นสามารถแก้ไขได้ คำจำกัดความของ ABC ในฟังก์ชั่นเป็นเพียงค่าของไม่ได้กำหนด ในเวลานี้ ABC มีขอบเขตทั่วโลกและด้านนอกของฟังก์ชั่นเป็นเพียงการอัปเดตของค่า ABC