มีสองสิ่งที่คุณต้องเข้าใจเกี่ยวกับการไม่ได้กำหนด ...
- ชนิด
undefinedที่สามารถมีได้เพียงหนึ่งค่า
- ตัวแปร
undefined
ตอนนี้อ่านต่อไปนี้อย่างระมัดระวัง ...
มีประเภทค่ามากมายnumber(10, 10.01, 1e1) แต่จะมีเพียงหนึ่งค่าประเภทundefinedและค่าที่undefinedถูกเก็บไว้ในตัวแปร ค่าที่มีตัวแทนที่แท้จริง NO - ตัวอย่างเช่นค่าจำนวน1, 100, 1e-1มีตัวอักษรทั้งหมดของจำนวนชนิด แต่ค่าที่เก็บไว้ในตัวแปรundefinedไม่มีรูปแบบอักษร
undefinedเป็นตัวแปรเพียงแค่ตัวแปรปกติที่ JavaScript ประกาศและกำหนดค่าประเภทundefinedในขอบเขตส่วนกลาง ดังนั้นคุณสามารถทำสิ่งต่อไปนี้ ...
พิมพ์ไม่ได้กำหนด; // "ไม่ได้กำหนด"
undefined = 100;
พิมพ์ไม่ได้กำหนด; // "หมายเลข"
undefined = void 0;
พิมพ์ไม่ได้กำหนด; // "ไม่ได้กำหนด"
window.undefined === ไม่ได้กำหนด; // จริง
window.undefined === โมฆะ 0; // จริง
- ถ้าคุณไม่ต้องการที่จะใช้ตัวแปร
undefinedคุณสามารถสร้างมูลค่าของชนิดundefinedโดยการแสดงออกvoid 0- undefinedมีวัตถุประสงค์เพียงอย่างเดียวคือการกลับค่าของประเภท
... ใครก็ได้ช่วยอธิบายหน่อยได้ไหมว่าทำไมสิ่งนี้ถึงถูกแทรกลงใน JavaScript ...
NO เหมือนไม่มีใครสามารถอธิบายได้ว่าทำไมตัวแปรที่ไม่ได้ประกาศจึงไปยังขอบเขตทั่วโลกแทนที่จะเป็นโลคัล คุณเพียงแค่ต้องฝึกตัวเองให้ใช้มันอย่างชาญฉลาดแทนที่จะพยายามหาเหตุผลว่ามีอยู่จริง
... เรามีค่า Null ...
แม้ว่าจะnullสามารถทำสิ่งต่าง ๆundefinedได้มันเกี่ยวข้องกับobjectsสเกลาร์มากกว่าหรือน้อยกว่า อันที่จริงจาวาสคริปต์ถือว่าnullตัวเองวัตถุ - typeof nullส่งคืน "วัตถุ"
ในความคิดของบรรทัดล่างคือที่จะไม่พยายามที่จะเหตุผลวัตถุประสงค์ที่แน่นอนของundefinedและnull- และใช้พวกเขาในรหัสของคุณ intelligibly เพื่อให้รหัสของคุณสามารถอ่านได้, การบำรุงรักษาและนำมาใช้ใหม่
undefinedเมื่อใดและเมื่อใดnull