หลุมพราง DOM และเหตุการณ์

query ก่อนที่เอลิเมนต์มีในหน้า

ได้ null แล้วเรียก .addEventListener จะพัง — ย้ายสคริปต์ท้าย body หรือเช็ก null

ใส่ innerHTML จากอินพุตผู้ใช้

เสี่ยงสคริปต์แปลกปลอม — ใช้ textContent สำหรับข้อความจากผู้ใช้

ลืม preventDefault ในฟอร์ม

หน้าเด้งรีโหลด ดูเหมือน “โค้ดไม่ทำงาน” ทั้งที่จริงรันก่อนรีโหลดแล้วหาย

// ผิดแนวคิด: เรียกฟังก์ชันตอนผูก
// btn.addEventListener("click", handle());

// ถูก: ส่งตัวฟังก์ชัน
btn.addEventListener("click", handle);
ถ้าคลิกแล้วหน้ากระพริบ/รีเซ็ต ให้สงสัยฟอร์ม submit ก่อนสงสัย logic อื่น