ใน JavaScript null และ undefined ทั้งคู่เป็น primitive values (ค่าเกลี้ยง)
อ่านเพิ่มเติมเกี่ยวกับ primitive vs non-primitive values ใน JavaScript
ตัวแปร undefined คือตัวแปรที่ ประกาศแล้วแต่ยังไม่ได้กำหนดค่า
ตัวอย่าง ลอง log ตัวแปรนี้:
let dogBreed; // undefined
คุณจะได้ undefined เพราะตัวแปร dogBreed ไม่มีค่า
null เป็น ค่า ที่มักจะกำหนดให้ตัวแปรโดยเจตนา ตัวอย่างเช่น เพื่อหลีกเลี่ยงตัวแปร undefined ที่ไม่พึงประสงค์ คุณสามารถกำหนด null ให้ตัวแปรร่วม (และกำหนดค่าจริงภายหลัง):
let dogBreed = null;
console.log(dogBreed); // null
ข้อมูลเพิ่มเติม (Bonus)
null ถูกประเมินเป็น object ซึ่งโค้ดต่อไปนี้แสดงให้เห็น:
console.log(typeof dogBreed); // "object"
นี่เป็นข้อผิดพลาดที่รู้จักกันดีใน JavaScript ตั้งแต่แรก (typeof null === 'object' เป็น true) ซึ่งเป็น bug ที่คงอยู่มาตลอดเพื่อ backward compatibility