ใน JavaScript VAR ใช้เพื่อประกาศตัวแปร แต่ไวยากรณ์นี้ไม่จำเป็นต้องใช้อย่างเคร่งครัด หลายครั้งที่เราสามารถใช้ตัวแปรโดยตรงโดยไม่ต้องใช้ VAR เพื่อประกาศ
การคัดลอกรหัสมีดังนี้:
var x = "xx";
y = "xxx";
และอื่น ๆ มีปัญหากับสิ่งนี้ ตัวอย่างเช่นในบรรทัดในรหัสฉันต้องการใช้ตัวแปรที่ประกาศ x เป็นผลให้เนื่องจากข้อผิดพลาดในการพิมพ์หรือการสะกดคำตัวแปรนี้เขียนเป็น y ผลลัพธ์นั้นเทียบเท่ากับการประกาศ "โดยนัย" ของตัวแปร y ในการเขียนโปรแกรมจริงข้อผิดพลาดนี้บางครั้งก็ตรวจจับได้ยาก
เมื่อคุณทำการประกาศ "โดยปริยาย" ในบริบทปัจจุบันเอ็นจิ้น JavaScript จะมองหาว่าตัวแปรนี้ได้รับการประกาศมาก่อนในบริบทปัจจุบันหรือไม่ ถ้าไม่ให้ค้นหาในระดับก่อนหน้าของบริบท หากไม่พบมันในที่สุดก็จะประกาศตัวแปรนี้บนหน้าต่าง!
ตัวอย่างเช่น:
รหัสมีดังนี้:
หน้าต่าง. y = "สวัสดี"; ฟังก์ชั่น func () {y = "โอ้ไม่ !!!"; } func (); การแจ้งเตือน (window.y); //#=> แสดง "โอ้ไม่ !!!"เมื่อเลเยอร์ใด ๆ ในบริบทมีคำจำกัดความ "โดยปริยาย" ของตัวแปรตัวแปรของเลเยอร์นั้นจะถูกแก้ไขโดยไม่ต้องสร้างตัวแปรใหม่บนหน้าต่าง (ข้อผิดพลาดแบบนี้ค่อนข้างน่ารำคาญโดยเฉพาะอย่างยิ่งรหัสที่ซับซ้อนมากขึ้น)
ตัวอย่างเช่น:
รหัสมีดังนี้:
var x = "window.x"; ฟังก์ชั่น a () {var x = "a x"; var b = function () {var c = function () {// no var! x = "C's x:"; - การแจ้งเตือน ("ก่อนที่จะเรียกใช้ Bx:" + x); C (); การแจ้งเตือน ("หลังการทำงาน C, BX:" + x); - การแจ้งเตือน ("ขวานคือ:" + x); B (); การแจ้งเตือน ("หลังฟังก์ชั่น B, ขวานคือ:" + x); - การแจ้งเตือน ("ก่อนการรัน, window.x:" + x); a (); การแจ้งเตือน ("หลังจากวิ่ง, window.x:" + x);มีเลเยอร์ต่อไปนี้ที่นี่: Window, Func A, Func B, Func C อยู่ในระดับเสมอ window-> a-> b-> c
ทั้งหน้าต่างและตัวแปรกำหนด X และ B ไม่ได้กำหนดไว้ X ถูกประกาศใน C ซึ่งในที่สุดก็ปรับเปลี่ยนค่าของตัวแปร A
โปรดจำไว้ว่าใน JavaScript ประกาศตัวแปรและคุณต้องเพิ่ม VAR ก่อนหน้า