Cara bermain Bongkar URL
- Baca instruksi level. Bagian link yang sedang dibahas diberi garis bawah, bagian lain diredupkan.
- Tulis isi fungsi
bongkar(). Variabel sepertilinksudah tersedia, jadi kamu tinggal memakainya. - Nilai yang kamu
returnlangsung tampil di bagian Hasil fungsimu. Kalau hasilnya link, link itu ikut dibongkar per warna. - Tekan Cek jawaban atau Ctrl + Enter. Yang dicek adalah nilai hasilnya, jadi cara menulis yang berbeda tetap benar.
- Kalau buntu, buka Petunjuk. Petunjuk pertama mengarahkan, petunjuk terakhir hampir menjawab.
- Level yang sudah selesai tetap tercentang saat kamu kembali dengan browser yang sama.
Yang kamu pelajari
- Level 1
new URL()
Mengubah teks link jadi objek yang bagian-bagiannya bisa dibaca dan diubah.
- Level 2
hostname dan pathname
Nama domain dan alamat halaman di dalam situs, tanpa protokol dan query.
- Level 3
searchParams.get() dan getAll()
Membaca nilai param di query.
getmengambil nilai pertama,getAllmengambil semua nilai dengan nama yang sama. - Level 5
Iterasi searchParams
for...ofatauObject.fromEntriesuntuk membaca semua param sekaligus. - Level 6
set() dan delete()
Mengganti, menambah, atau membuang param tanpa merangkai teks sendiri.
- Level 7
toString() dan href
Mengubah objek URL kembali jadi teks link.
- Level 8
Base URL
new URL(link, base)melengkapi link relatif memakai alamat halaman. - Level 9
Encoding
Spasi, emoji, dan
&di nilai param harus dikodekan supaya link tidak rusak. - Level 10
hash
Bagian setelah
#untuk melompat ke bagian halaman. Tidak dikirim ke server.
Jangan rangkai link dengan +
link + "?q=" + kata terlihat beres sampai kata berisi &, spasi, atau emoji. Untuk kopi & roti, server membaca q sebagai kopi dan menganggap roti param baru yang kosong.
url.searchParams.set("q", kata) mengodekan nilainya sendiri, dan tetap benar kalau link sudah punya ?. Spasi ditulis +, sedangkan encodeURIComponent menulisnya %20. Keduanya dibaca sama oleh server.
Tanya jawab
Apakah harus daftar akun untuk bermain?
Tidak. Semua level bisa dimainkan tanpa akun. Kemajuanmu disimpan di browser yang kamu pakai, jadi akan hilang kalau data browser dihapus.
Di mana kodeku dijalankan?
Di Web Worker di dalam iframe terpisah, bukan di halaman ini. Kodemu tidak bisa membaca cookie atau data Mahir, dan perulangan yang tidak berhenti dihentikan setelah 1 detik.
Apa beda searchParams dan encodeURIComponent?
encodeURIComponent mengodekan satu potong teks dan kamu yang merangkai ?, =, dan &. searchParams mengurus semuanya, termasuk nama param dan link yang sudah punya query. Spasi jadi + di searchParams dan %20 di encodeURIComponent, dan server membaca keduanya sebagai spasi.
Apakah URL dan URLSearchParams bisa dipakai di Node.js?
Bisa. Keduanya global di Node.js sejak versi 10, jadi kode dari game ini jalan juga di server, misalnya untuk membaca query di route handler.
Kenapa link WhatsApp harus diawali 62?
Link wa.me memakai nomor format internasional tanpa +, spasi, atau 0 di depan. Nomor 0812... ditulis 62812....