Setiap nilai di JavaScript punya tipe data, yaitu jenis nilainya: teks, angka, ya/tidak, daftar, dan seterusnya. Tipe menentukan apa yang bisa dilakukan dengan nilai itu: angka bisa dijumlah, teks bisa disambung. Tipe datang dari nilainya, bukan dari nama variabelnya.
🧪 Tebakan cepat:
typeof [1, 2, 3]hasilnya apa,"array"atau yang lain? Tebak dulu, jawabannya ada di bagian "Array dan object: kumpulan nilai".
Tiga tipe dasar: string, number, boolean
let kota = "Bandung";
let harga = 15000;
let lapar = true;
console.log(typeof kota); // "string"
console.log(typeof harga); // "number"
console.log(typeof lapar); // "boolean"
"Bandung"adalah string, yaitu teks. String selalu diapit tanda kutip,"..."atau'...'.15000adalah number, yaitu angka. Ditulis tanpa kutip, boleh desimal pakai titik (3.14) dan boleh negatif (-2).trueadalah boolean, tipe yang nilainya cuma dua:true(benar) ataufalse(salah), tanpa kutip. Dipakai buat jawaban ya atau tidak.typeofadalah operator yang memberi tahu tipe sebuah nilai, dalam bentuk teks:"string","number","boolean".kota,harga, danlaparcuma nama variabel pilihanmu. Tipe gak ditulis di kode, JavaScript melihatnya dari nilai.
Kutip mengubah tipe. 42 itu number, "42" itu string. Hasilnya beda: 42 + 1 jadi 43, sedangkan "42" + 1 jadi "421", karena teks yang ditambah malah disambung. Begitu juga "true" dengan kutip itu string, bukan boolean.
Array dan object: kumpulan nilai
let belanja = ["beras", 2, true];
let posisi = { x: 3, y: 7 };
belanjaberisi array: daftar nilai berurutan di dalam kurung siku[ ], dipisah koma. Isinya boleh campur tipe.posisiberisi object: kumpulan pasangan nama dan nilai di dalam kurung kurawal{ }, dipisah koma.xadalah nama propertinya,3nilainya. Di dalam object pakai:, bukan=.
Jawaban tebakan: typeof [1, 2, 3] hasilnya "object", karena di JavaScript array juga object. Buat memastikan sebuah nilai itu array, pakai Array.isArray(belanja), hasilnya true.
Kosong: undefined dan null
let alamat;
let foto = null;
console.log(alamat); // undefined
console.log(typeof foto); // "object"
console.log(foto === null); // true
undefinedartinya belum diberi nilai.alamatdibuat tanpa=, jadi isinyaundefined.nullartinya sengaja dikosongkan. Kamu sendiri yang menaruhnya.typeof nullmemberi"object". Ini bug dari versi pertama JavaScript yang sengaja dibiarkan supaya website lama gak rusak. Buat mengeceknull, bandingkan langsung:foto === null. Tanda===mengecek apakah dua nilai sama persis, termasuk tipenya.
⚠️ Jebakan yang sering ketemu
- Menulis tipe sebagai nama variabel.
'string' = "Belajar JS"itu error. Yang di kiri=adalah nama variabel, misalnyalet teks = "Belajar JS";. Tipenya otomatis string karena nilainya teks. - Angka atau boolean diberi kutip.
"42"dan"true"itu string. Tulis42dantruetanpa kutip. - Mengecek array dengan
typeof. Hasilnya"object", sama kayak object biasa dannull. PakaiArray.isArray().
TL;DR: Tipe data adalah jenis sebuah nilai. String itu teks dalam kutip, number itu angka tanpa kutip, boolean itu true atau false. Array adalah daftar dalam [ ], object adalah pasangan nama dan nilai dalam { }. undefined berarti belum diisi, null berarti sengaja kosong. typeof memberi tipe sebagai teks, tapi array dan null sama-sama "object": cek dengan Array.isArray() dan === null.