ใน JavaScript มีสองค่าซึ่งโดยทั่วไปจะบอกว่า 'ฉันไม่อยู่ - และundefinednull
คุณสมบัติที่โปรแกรมเมอร์ไม่ได้กำหนดอะไรจะเป็นundefinedแต่เพื่อให้คุณสมบัตินั้นกลายเป็นคุณสมบัติnullนั้นnullจะต้องถูกกำหนดให้กับคุณสมบัตินั้นอย่างชัดเจน
ฉันเคยคิดว่ามีความจำเป็นnullเพราะundefinedเป็นค่าดั้งเดิมและnullวัตถุ มันไม่ได้ถึงแม้ว่าtypeof nullจะให้ผลผลิต'object': ที่จริงทั้งสองมีค่าดั้งเดิม - ซึ่งหมายความว่าค่าundefinedมิได้nullสามารถกลับมาจากการทำงานของผู้สร้างขณะที่ทั้งสองจะถูกแปลงเป็นวัตถุที่ว่างเปล่า (หนึ่งที่มีการโยนข้อผิดพลาดความล้มเหลวจงประกาศในการก่อสร้าง)
ทั้งคู่ยังประเมินfalseในบริบทบูลีน ข้อแตกต่างที่แท้จริงที่ฉันสามารถคิดเป็นที่หนึ่งประเมินเพื่อNaNการอื่น ๆ เพื่อ0ในบริบทที่เป็นตัวเลข
เหตุใดจึงมีทั้งสองอย่างundefinedและnullเพียงแค่สร้างความสับสนให้โปรแกรมเมอร์ที่ตรวจสอบไม่ถูกต้องnullเมื่อพยายามค้นหาว่ามีการตั้งค่าคุณสมบัติหรือไม่?
สิ่งที่อยากทราบคือหากใครมีตัวอย่างที่สมเหตุสมผลที่จำเป็นต้องใช้nullที่ไม่สามารถแสดงundefinedแทนได้
ดังนั้นฉันทามติทั่วไปดูเหมือนจะundefinedหมายความว่า 'ไม่มีคุณสมบัติดังกล่าว' ในขณะที่nullหมายถึง 'ทรัพย์สินนั้นมีอยู่จริง แต่ไม่มีค่า'
ฉันสามารถใช้ชีวิตแบบนั้นได้หากการใช้งาน JavaScript บังคับใช้พฤติกรรมนี้จริง - แต่undefinedเป็นค่าดั้งเดิมที่ถูกต้องอย่างสมบูรณ์ดังนั้นจึงสามารถกำหนดให้กับคุณสมบัติที่มีอยู่เพื่อทำลายสัญญานี้ได้อย่างง่ายดาย ดังนั้นหากคุณต้องการตรวจสอบว่ามีคุณสมบัติอยู่หรือไม่คุณต้องใช้ตัวinดำเนินการหรือhasOwnProperty()อย่างไรก็ตาม อีกครั้ง: การใช้ประโยชน์สำหรับค่าที่แยกต่างหากสำหรับundefinedและnullคืออะไร
ฉันใช้จริงundefinedเมื่อต้องการยกเลิกการตั้งค่าคุณสมบัติที่ไม่ได้ใช้งานอีกต่อไป แต่ไม่ต้องการdeleteใช้ ฉันควรใช้nullแทนหรือไม่?
In JavaScript, there are two values which basically say 'I don't exist' - undefined and null.ไม่เพียง แต่undefinedพูดอย่างนั้น
undefinedที่จะตอบคำถามสุดท้ายของคุณไม่มีคุณไม่ควรตั้งค่าคุณสมบัติ