JavaScript: Bahasanya · 2/12
Value dan type
Delapan type, cuma delapan. Kuasai itu dan separuh keanehan JavaScript hilang.
Baca 25 menit
Setelah pelajaran ini kamu bisa
- Menyebutkan kedelapan type dan mengenali masing-masing dalam kode
- Menjelaskan bedanya `null` dan `undefined`
- Memakai `typeof` dengan benar, termasuk di mana ia menipu
- Menjelaskan kenapa `NaN` ada dan cara mengujinya
Setiap value di JavaScript adalah salah satu dari tepat delapan type. Bukan sembilan, bukan tiga puluh. Kuasai ini dan banyak sekali kebingungan akan hilang.
| Type | Contoh | Untuk apa |
|---|---|---|
| string | "hello" | Teks |
| number | 42, 3.14, -0.5 | Semua angka — tidak ada int dan float terpisah |
| boolean | true, false | Ya atau tidak |
| undefined | undefined | Belum ada value yang diisi |
| null | null | Sengaja dikosongkan |
| bigint | 9007199254740993n | Bilangan bulat yang terlalu besar untuk number |
| symbol | Symbol("id") | Key unik; jarang dipakai sehari-hari |
| object | {}, [], function () {} | Semua sisanya, termasuk array dan function |
Tujuh yang pertama disebut primitive. Yang kedelapan, object, adalah semua yang punya struktur. Array itu object. Function itu object. Date itu object. Itu sebabnya daftarnya lebih pendek dari yang kamu bayangkan.
null versus undefined
Keduanya berarti "tidak ada apa-apa", dan bedanya soal siapa yang memutuskan. undefined itu bahasanya bilang "tidak ada yang mengisi ini". null itu kamu bilang "ini sengaja saya kosongkan".
Hasil
Tekan Jalankan untuk melihat hasilnya.
Ini jalan di browser kamu, di dalam sandbox. Apa pun yang kamu tulis di sini tidak bisa merusak situs.
typeof, dan dua tempat ia menipu
Dua jawaban di sini adalah kecelakaan sejarah. Jalankan dan lihat yang mana.
Hasil
Tekan Jalankan untuk melihat hasilnya.
Ini jalan di browser kamu, di dalam sandbox. Apa pun yang kamu tulis di sini tidak bisa merusak situs.
Number, dan NaN
Hanya ada satu type number, disimpan sebagai float 64-bit. Artinya 0.1 + 0.2 tidak tepat 0.3 — keterbatasan yang sama ada di Java, Python, dan C. Ini bukan kekurangan JavaScript; ini memang sifat pecahan biner.
Hasil
Tekan Jalankan untuk melihat hasilnya.
Ini jalan di browser kamu, di dalam sandbox. Apa pun yang kamu tulis di sini tidak bisa merusak situs.
Tugas praktik
Tulis function describe(value) yang mengembalikan nama type yang jujur sebagai string: "null" untuk null, "array" untuk array, dan typeof value untuk sisanya. Uji dengan null, [], {}, 42, "x", dan undefined.
Hasil yang diharapkan
null, array, object, number, string, undefined
Tampilkan contoh solusiSembunyikan solusi
Coba dulu minimal sepuluh menit sebelum membuka ini. Bagian yang terasa susah itu justru yang mengajari kamu.
function describe(value) {
if (value === null) return "null";
if (Array.isArray(value)) return "array";
return typeof value;
}
console.log(describe(null)); // null
console.log(describe([])); // array
console.log(describe({})); // object
console.log(describe(42)); // number
console.log(describe("x")); // string
console.log(describe(undefined)); // undefined