Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

วิธีตรวจสอบตัวแปรที่ไม่ได้ประกาศ (not-defined) ใน JavaScript

เพื่อตรวจสอบตัวแปรว่า 'undefined' ต้องตรวจสอบดังนี้ หากผลลัพธ์เป็น "false" หมายถึงตัวแปรไม่ได้ถูกกำหนด ที่นี่ตัวแปรให้ผลลัพธ์ "True":

ตัวอย่าง

Live Demo

<html> 
  <body> 
    <script> 
      var points = 100; 
      if (points) { 
        document.write("True"); 
      } else { 
        document.write("False"); 
      } 
    </script> 
  </body> 
</html>

วิธีที่ถูกต้องสำหรับ "not defined" (ไม่ได้ประกาศเลย)

// 1. ใช้ typeof - ไม่โยน ReferenceError
typeof myVar === 'undefined'  // true ถ้าไม่ได้ประกาศ หรือ ประกาศแต่ไม่กำหนดค่า

// 2. ลอง catch ReferenceError (ไม่แนะนำ - ใช้ control flow ผิด)
try {
  myVar;  // ReferenceError ถ้ายังไม่ประกาศ
} catch (e) {
  // not defined
}

// 3. ตรวจสอบใน global object (เฉพาะ global variables)
'myVar' in window  // true ถ้ามี global variable ชื่อ myVar
window.hasOwnProperty('myVar')  // true ถ้าเป็น own property ของ window

ความแตกต่าง: undefined vs not defined

สถานะคำอธิบายtypeofการเข้าถึงโดยตรง
Declared, not initializedvar x;"undefined"undefined
Initialized undefinedvar x = undefined;"undefined"undefined
Not declaredไม่มีการประกาศ"undefined"ReferenceError

สรุป: ใช้ typeof x === 'undefined' เพื่อตรวจสอบทั้ง "ไม่ได้ประกาศ" และ "ประกาศแต่ไม่ได้กำหนดค่า" อย่างปลอดภัย