Lompat ke konten
Kembali ke modul

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.

TypeContohUntuk apa
string"hello"Teks
number42, 3.14, -0.5Semua angka — tidak ada int dan float terpisah
booleantrue, falseYa atau tidak
undefinedundefinedBelum ada value yang diisi
nullnullSengaja dikosongkan
bigint9007199254740993nBilangan bulat yang terlalu besar untuk number
symbolSymbol("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".

Coba sendiri

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

Coba sendiri

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.

Coba sendiri

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 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