ตรวจสอบ JavaScript เป็นศูนย์
ฉันเจอรหัสต่อไปนี้: function test(data) { if (data != null && data !== undefined) { // some code here } } ฉันค่อนข้างใหม่กับ JavaScript แต่จากคำถามอื่น ๆ ที่ฉันได้อ่านที่นี่ฉันรู้สึกว่ารหัสนี้ไม่สมเหตุสมผล โดยเฉพาะคำตอบนี้ระบุว่า คุณจะได้รับข้อผิดพลาดถ้าคุณเข้าถึงตัวแปรที่ไม่ได้กำหนดในบริบทอื่น ๆ typeofกว่าใด อัปเดต:คำตอบ (อ้างถึง) ด้านบนอาจทำให้เข้าใจผิด มันควรจะพูดว่า«ตัวแปรที่ไม่ได้ประกาศ»แทนที่จะ«ตัวแปรไม่ได้กำหนด» ดังที่ฉันค้นพบในคำตอบของRyan ♦ , maericsและnwellnhofถึงแม้ว่าจะไม่มีการขัดแย้งกับฟังก์ชันฟังก์ชันตัวแปรสำหรับอาร์กิวเมนต์จะถูกประกาศเสมอ ความจริงข้อนี้ยังพิสูจน์ข้อแรกในรายการด้านล่าง จากความเข้าใจของฉันสถานการณ์ต่อไปนี้อาจประสบ: ฟังก์ชั่นได้รับการเรียกว่ามีการขัดแย้งใดจึงทำให้ตัวแปรไม่ได้กำหนดและการสร้างข้อผิดพลาดในdatadata != null ฟังก์ชั่นถูกเรียกโดยเฉพาะอย่างยิ่งกับnull(หรือundefined) เป็นอาร์กิวเมนต์ในกรณีที่data != nullได้รับการปกป้องรหัสภายในทำให้การแสดงผลที่&& data !== undefinedไร้ประโยชน์ ฟังก์ชั่นถูกเรียกด้วยอาร์กิวเมนต์ null …