← Kembali ke kursus
Pelajaran kursus · JavaScript
Pelajaran 02

Variabel dan tipe data

7 tipe primitif + object, typeof, konversi otomatis.

Pahami konsepnya

JavaScript punya 7 tipe primitif: string, number (semua angka — bulat dan desimal — adalah number, tidak ada int/float terpisah), boolean, undefined (belum diisi), null (sengaja kosong), symbol (kunci unik), dan bigint (angka sangat besar, 123n). Selain primitif, semuanya adalah object — termasuk array, function, dan date.

typeof memeriksa tipe: typeof "halo" → "string", typeof 42 → "number", typeof undefined → "undefined", typeof null → "object" (bug historis yang tak akan diperbaiki). Untuk array: Array.isArray([1,2]) → true.

Konversi otomatis terjadi terus-menerus dan menjadi sumber bug: "5" + 3 menghasilkan "53" (string concat), "5" - 3 menghasilkan 2 (number subtract), "5" * 3 menghasilkan 15. Tanda + memihak string, tanda aritmetika lain memihak number. Konversi eksplisit lebih aman: Number("42"), String(42), Boolean(0) → false.

Coba contoh kode

let teks = "42";
let angka = Number(teks);
console.log(teks + "5");   // "425" — string concat
console.log(angka + 5);    // 47 — number add

console.log(typeof null);         // "object" (bug!)
console.log(Array.isArray([1]));  // true
console.log(Boolean(0), Boolean(""));  // false false
console.log(Boolean("0"));        // true — string tidak kosong!

Jebakan klasik: "5" + 3 merangkai menjadi "53" karena + memihak string bila salah satu operand string. Boolean("0") adalah true — string "0" tidak kosong, beda dari number 0 yang falsy.

Latihan singkat

Uji: konversi "42" ke number, tambah 8 — harus `50`.