Tipe Data Primitif
Tujuh tipe data primitif JavaScript: string, number, boolean, undefined, null, symbol, dan bigint.
Apa itu tipe data primitif?
Tipe data primitif adalah jenis nilai paling dasar di JavaScript. Nilainya disimpan langsung, bukan sebagai referensi. Ada tujuh: string, number, boolean, undefined, null, symbol, dan bigint. Lima yang pertama akan kamu pakai setiap hari.
String, number, boolean
let nama = "Rizky"; // string: teks, pakai kutip
let umur = 17; // number: angka (bulat maupun desimal)
let lulus = true; // boolean: true atau falseString bisa memakai kutip tunggal, ganda, atau backtick. Number mencakup bilangan bulat dan desimal, tidak ada pemisahan int dan float seperti bahasa lain.
undefined vs null
Keduanya berarti "kosong", tapi beda makna:
let a; // undefined: belum diberi nilai
let b = null; // null: sengaja dikosongkanAnaloginya: undefined seperti gelas yang belum pernah diisi, sedangkan null seperti gelas yang sengaja dikosongkan. Perbedaan ini penting saat debugging.
symbol dan bigint
Symbol dipakai untuk membuat identifier unik, biasanya di library. Bigint untuk angka bulat yang sangat besar melebihi batas number biasa:
let id = Symbol("id"); // unik, tidak akan sama dengan symbol lain
let besar = 123456789012345678901234567890n; // n di akhir = bigintKeduanya jarang dipakai di awal belajar, cukup tahu mereka ada.
Mengecek tipe dengan typeof
console.log(typeof "halo"); // "string"
console.log(typeof 42); // "number"
console.log(typeof true); // "boolean"
console.log(typeof undefined); // "undefined"Catatan teknis: typeof null menghasilkan "object". Ini bug legendaris sejak JavaScript pertama dibuat dan tidak pernah diperbaiki karena alasan kompatibilitas. Untuk mengecek null, pakai perbandingan langsung: nilai === null.
Konversi tipe otomatis
JavaScript kadang mengubah tipe data sendiri saat operasi, dan ini sumber kejutan:
console.log("5" + 3); // "53", + menggabung jadi string
console.log("5" - 3); // 2, - memaksa jadi number
console.log("5" * "2"); // 10
console.log(true + 1); // 2, true dianggap 1Operator + lebih suka string: kalau salah satu operan string, yang lain ikut jadi string. Operator -, *, / sebaliknya, memaksa jadi number. Ketidakkonsistenan inilah alasan kenapa perbandingan harus pakai ===.
Untuk konversi eksplisit yang jelas niatnya:
console.log(Number("42")); // 42
console.log(String(42)); // "42"
console.log(Boolean("halo")); // true
console.log(Boolean("")); // falseBiasakan konversi eksplisit. Kode yang niatnya jelas tidak akan mengejutkan pembacanya.
Kesimpulan
Kuasai lima primitif utama dulu: string, number, boolean, undefined, null. Mereka adalah bahan baku semua program yang akan kamu tulis.