Data types เก็บค่าต่างๆ มี 2 ประเภทใน JavaScript: Primitive และ Non-Primitive Primitive กำหนดค่า immutable และถูกนำเข้ามาโดยมาตรฐาน ECMAScript
Primitive datatypes ประกอบด้วย:
String — ลำดับของตัวอักษร เช่น "demo", "Hi"
Boolean — มีค่าสองค่า True หรือ False
Number — แทนค่าตัวเลข เช่น 5, 20, 500
Undefined — ค่าที่ยังไม่ได้กำหนด
Null — ค่าว่าง (intentional absence of value)
Symbol — ชนิดข้อมูลใหม่ใน ECMAScript 6 ใช้สร้างค่า unique identifier
BigInt (เพิ่มใน ES2020) — ตัวเลขจำนวนเต็มขนาดใหญ่เกินกว่า Number.MAX_SAFE_INTEGER
ความแตกต่าง Null vs Undefined
undefined: ตัวแปรถูกประกาศแต่ยังไม่ได้กำหนดค่าnull: กำหนดค่าว่างโดยเจตนา (intentional empty value)
ทั้งคู่เป็น falsy values แต่ typeof null === "object" (bug แบบเก่าที่คงอยู่เพื่อ backward compatibility)