Pemformat JavaScript
Rapikan indentasi skrip agar dapat dibaca, sepenuhnya di browser Anda. Jeda baris yang Anda tulis tidak pernah dihapus.
Berjalan sepenuhnya di browser Anda. Tidak ada yang diunggah, dicatat, atau disimpan.
Tempelkan skrip yang diminifikasi atau berindentasi buruk dan bacalah dengan semestinya. Pemformatan dilakukan di browser Anda, dan tidak ada yang diubah dari kode itu selain spasinya.
Cara kerja
Skrip dipecah menjadi potongan-potongan—komentar, string, template literal, regex, angka, nama, operator, tanda kurung, dan kurung kurawal—lalu ditulis ulang. Sebuah blok mendapat barisnya sendiri dan satu tingkat indentasi, sebuah pernyataan mendapat satu baris, dan literal objek yang tersebar di beberapa baris mendapat satu entri per baris.
Jeda baris yang Anda tulis tidak pernah dihapus, dan itulah aturan yang menjadi dasar semua hal lain. Dalam JavaScript, akhir baris dapat mengakhiri pernyataan—penyisipan titik koma otomatis—sehingga menggabungkan dua baris menjadi satu dapat mengubah apa yang dilakukan program, atau membuatnya tidak dapat diurai. Jeda baris hanya ditambahkan: di sekitar kurung kurawal sebuah blok, setelah titik koma sebuah pernyataan, di antara entri sebuah objek, dan di antara kurung kurawal penutup dan kata yang membuka pernyataan berikutnya. Tidak satu pun dari itu dapat mengubah makna.
Baris yang dipecah oleh kode sumber di tengah sebuah pernyataan—rangkaian pemanggilan, kondisi yang panjang, cabang-cabang sebuah kondisional—diberi indentasi satu tingkat dari baris di atasnya, agar tetap terbaca sebagai bagian darinya.
Contoh
| Kasus | Masukan | Hasil |
|---|---|---|
| Fungsi yang ditulis dalam satu baris | function add(a,b){const total=a+b;return total} | function add(a, b) { const total = a + b; return total } |
Pertanyaan umum
Apakah kode saya dikirim ke suatu tempat?
Tidak. Pemformat ini adalah JavaScript yang berjalan di halaman ini. Tidak ada yang diunggah, dicatat, atau disimpan: Anda bisa memutus jaringan dan alat ini tetap berfungsi.
Apakah alat ini akan menambahkan titik koma yang saya lewatkan?
Tidak. Titik koma yang tidak ditulis kadang memang titik koma yang tidak boleh ditulis, dan membedakan kasus-kasus itu memerlukan pengurai, bukan sekadar penataan. Pemformat ini tidak menyentuh persoalan itu: tidak pernah menambahkan titik koma dan tidak pernah menghapus jeda baris, sehingga kode yang ditulis tanpa titik koma tetap berjalan persis sama.
Apakah alat ini juga melakukan minifikasi?
Tidak, dan itu keputusan, bukan kelalaian. Minifikasi berarti mengganti nama, menulis ulang, dan memutuskan jeda baris mana yang bermakna: tiga penilaian yang justru dihindari oleh alat ini. Kesalahan dalam salah satunya merusak program dengan cara yang baru Anda ketahui di production.
Apakah alat ini memahami TypeScript atau JSX?
Sebagian, dan secara jujur. Keduanya dibaca sebagai token sebagaimana adanya, sehingga tidak ada yang hilang dan tanda kurung serta kurung kurawal tetap bersarang dengan benar, tetapi anotasi tipe dan tag bukanlah hal yang bentuknya dikenali oleh penata letak. Harapkan hasil yang masuk akal, bukan yang idiomatis.
Apakah alat ini akan memberi tahu apakah skrip saya valid?
Tidak. Alat ini tidak punya tata bahasa, jadi tidak bisa: alat ini tahu di mana satu potongan kode berakhir dan potongan berikutnya dimulai, yang cukup untuk menata file tetapi tidak cukup untuk menilainya. File yang sama sekali tidak dapat dibacanya—string, komentar, atau template literal yang tidak ditutup—ditolak alih-alih diformat ulang menjadi sesuatu yang tampak masuk akal.
Perlu diketahui
- Keluaran berisi persis potongan-potongan yang ada di masukan. Tidak ada yang ditambahkan, dihapus, atau diurutkan ulang: hanya spasi di antaranya yang dipindahkan.
- Garis miring bisa berarti pembagian atau awal sebuah regex, dan tidak ada tokenizer yang dapat memastikannya tanpa tata bahasa. Alat ini memutuskannya berdasarkan token sebelumnya, dan membaca sebagai pembagian setiap literal yang harus melintasi jeda baris, karena regex tidak dapat memuat jeda baris. Tebakan yang salah hanya mengorbankan kerapian, tidak lebih, karena setiap potongan disalin persis seperti yang ditulis.
- Template literal dikembalikan karakter demi karakter, dari backtick ke backtick. Spasinya adalah teks yang akan ditampilkan halaman Anda, jadi bukan spasi yang boleh disentuh pemformat.
- Tata letaknya deterministik: skrip yang sama dengan opsi yang sama selalu menghasilkan keluaran yang sama, dan memformat skrip yang sudah diformat tidak mengubah apa pun.