อื่น ๆ undefined
ได้อธิบาย undefined
เปรียบเสมือนตัวแปรโกลบอลที่สามารถนิยามใหม่เป็นค่าใดก็ได้ เทคนิคนี้เพื่อป้องกันการตรวจสอบที่ไม่ได้กำหนดทั้งหมดหากผู้อื่นเขียนว่าundefined = 10
อยู่ที่ไหนสักแห่ง ข้อโต้แย้งที่ไม่เคยผ่านการรับประกันได้ว่าจะจริงundefined
โดยไม่คำนึงถึงความคุ้มค่าของตัวแปร undefined
สามารถแสดงเหตุผลของการผ่านหน้าต่างด้วยตัวอย่างต่อไปนี้
(function() {
console.log(window);
...
...
...
var window = 10;
})();
บันทึกของคอนโซลคืออะไร คุณค่าของwindow
วัตถุใช่มั้ย ไม่ถูกต้อง! 10? ไม่ถูกต้อง! undefined
มันบันทึก Javascript interpreter (หรือคอมไพเลอร์ JIT) เขียนใหม่ด้วยวิธีนี้ -
(function() {
var window; //and every other var in this function
console.log(window);
...
...
...
window = 10;
})();
อย่างไรก็ตามหากคุณได้รับwindow
ตัวแปรเป็นอาร์กิวเมนต์ไม่มี var และดังนั้นจึงไม่น่าประหลาดใจ
ฉันไม่รู้ว่า jQuery กำลังทำอยู่หรือไม่ แต่ถ้าคุณนิยามwindow
ตัวแปรท้องถิ่นที่ใดก็ได้ในหน้าที่การใช้งานของคุณไม่ว่าจะด้วยเหตุผลใดก็ตามคุณควรยืมจากขอบเขตทั่วโลก