ในที่ทำงาน เรามักจะต้องพิจารณาว่าตัวแปร/คุณสมบัติไม่ได้ถูกกำหนดไว้หรือไม่ โดยปกติจะมีสองวิธีในการเขียน
คัดลอกรหัสรหัสดังต่อไปนี้:
// วิธีที่ 1
ประเภทของอายุ === 'ไม่ได้กำหนด';
// วิธีที่ 2
อายุ === ไม่ได้กำหนด
การเขียนทั้งสองวิธีนี้มีความแตกต่างกันหรือไม่? ลองดูตัวอย่างต่อไปนี้
คัดลอกรหัสรหัสดังต่อไปนี้:
ประเภทของอายุ === 'ไม่ได้กำหนด'; // จริง
ยังไม่ได้ประกาศอายุของตัวระบุ และเอาต์พุตเป็น true
ลองดูอีกตัวอย่างหนึ่ง
คัดลอกรหัสรหัสดังต่อไปนี้:
อายุ === ไม่ได้กำหนด; // รายงานข้อผิดพลาด
ไม่ได้กำหนดอายุแจ้ง Firebug
นี่คือข้อแตกต่างระหว่างทั้งสอง กล่าวคือ หากคุณไม่แน่ใจว่ามีการประกาศหรือกำหนดอายุหรือไม่ ให้ใช้วิธีที่ 1 และหากคุณแน่ใจ คุณสามารถใช้วิธีที่ 2 ได้ หากตัวแปรไม่ได้รับการประกาศโดยใช้วิธีที่ 1 รหัสจะไม่รายงานข้อผิดพลาด แต่วิธีที่ 2 จะรายงานข้อผิดพลาด ดูเหมือนว่าวิธีที่ 1 จะทนทานต่อข้อผิดพลาดมากกว่า แต่จริงๆ แล้ว มันเป็นจุดบกพร่องที่ซ่อนอยู่ ถือเป็นแนวปฏิบัติที่ดีเสมอในการประกาศตัวแปรก่อนใช้งาน
นอกจากนี้ วิธีที่ 1 เป็นการดำเนินการสองรายการ และวิธีที่ 2 เป็นการดำเนินการเดียว