Ketika saya menemukan bahwa saya memiliki cuplikan kode yang bermasalah, bagaimana cara saya melakukan debug?
javascript
debugging
Canavar
sumber
sumber
Semua browser modern hadir dengan beberapa bentuk aplikasi debugging JavaScript bawaan. Rincian ini akan dibahas di halaman web teknologi yang relevan. Preferensi pribadi saya untuk men-debug JavaScript adalah Firebug di Firefox. Saya tidak mengatakan Firebug lebih baik dari yang lain; itu tergantung pada preferensi pribadi Anda dan Anda mungkin harus menguji situs Anda di semua browser (pilihan pertama pribadi saya selalu Firebug).
Saya akan membahas beberapa solusi tingkat tinggi di bawah ini, menggunakan Firebug sebagai contoh :
Firefox
Firefox hadir dengan alat debugging JavaScript bawaannya sendiri, tetapi saya sarankan Anda menginstal add-on Firebug . Ini menyediakan beberapa fitur tambahan berdasarkan versi dasar yang berguna. Saya hanya akan berbicara tentang Firebug di sini.
Setelah Firebug diinstal, Anda dapat mengaksesnya seperti di bawah ini:
Pertama jika Anda mengklik kanan pada elemen apa pun, Anda dapat Memeriksa Elemen dengan Firebug :
Mengklik ini akan membuka panel Firebug di bagian bawah browser:
Firebug menyediakan beberapa fitur tetapi yang kami minati adalah tab skrip. Mengklik tab script membuka jendela ini:
Jelas, untuk men-debug Anda perlu mengklik muat ulang :
Anda sekarang dapat menambahkan breakpoint dengan mengklik baris di sebelah kiri potongan kode JavaScript yang ingin Anda tambahkan breakpoint:
Saat breakpoint Anda tercapai, akan terlihat seperti di bawah ini:
Anda juga dapat menambahkan variabel tontonan dan umumnya melakukan semua yang Anda harapkan dalam alat debugging modern.
Untuk informasi lebih lanjut tentang berbagai opsi yang ditawarkan di Firebug, lihat FAQ Firebug .
Chrome
Chrome juga memiliki opsi debugging JavaScript bawaan, yang bekerja dengan cara yang sangat mirip, klik kanan, periksa elemen, dll . Lihat Alat Pengembang Chrome . Saya biasanya menemukan jejak tumpukan di Chrome lebih baik daripada Firebug.
Internet Explorer
Jika Anda mengembangkan di .NET dan menggunakan Visual Studio menggunakan lingkungan pengembangan web, Anda dapat men-debug kode JavaScript secara langsung dengan menempatkan breakpoint, dll. Kode JavaScript Anda terlihat persis sama seperti jika Anda men-debug kode C # atau VB.NET .
Jika Anda tidak memiliki ini, Internet Explorer juga menyediakan semua alat yang ditunjukkan di atas. Anehnya, alih-alih memiliki fitur klik kanan memeriksa elemen Chrome atau Firefox, Anda mengakses alat pengembang dengan menekan F12 . Pertanyaan ini mencakup sebagian besar poin.
sumber
sumber
Ada kata kunci debugger dalam JavaScript untuk men-debug kode JavaScript. Letakkan debugger; potongan kode JavaScript Anda. Ini secara otomatis akan mulai men-debug kode JavaScript pada saat itu.
Sebagai contoh:
Misalkan ini adalah file test.js Anda
sumber
Saya menggunakan
printf
pendekatan lama yang baik (teknik kuno yang akan bekerja dengan baik kapan saja).Lihatlah keajaiban
%o
:%o
membuang konten objek JS yang dapat diklik dan dapat dijelajahi dalam serta dicetak dengan cantik .%s
ditampilkan hanya sebagai catatan.Dan ini:
memberi Anda pelacakan tumpukan seperti Java ke titik
new Error()
pemanggilan (termasuk jalur ke file dan nomor baris !!).Keduanya
%o
dannew Error().stack
tersedia di Chrome dan Firefox.Dengan alat canggih seperti itu, Anda membuat asumsi apa yang salah di JS Anda, meletakkan keluaran debug (jangan lupa bungkus dalam
if
pernyataan untuk mengurangi jumlah data) dan verifikasi asumsi Anda. Perbaiki masalah atau buat asumsi baru atau taruh lebih banyak output debug ke masalah bit.Juga untuk penggunaan pelacakan tumpukan:
seperti yang dikatakan Konsol
Selamat meretas!
sumber
Mulailah dengan Firebug dan IE Debugger.
Berhati-hatilah dengan debugger di JavaScript. Sesekali mereka akan mempengaruhi lingkungan cukup untuk menyebabkan beberapa kesalahan yang Anda coba debug.
Contoh:
Untuk Internet Explorer, ini umumnya merupakan pelambatan bertahap dan merupakan semacam kesepakatan jenis kebocoran memori. Setelah sekitar setengah jam saya perlu memulai ulang. Tampaknya cukup biasa.
Untuk Firebug, mungkin sudah lebih dari setahun jadi ini mungkin versi yang lebih lama. Akibatnya, saya tidak ingat secara spesifik, tetapi pada dasarnya kode tidak berjalan dengan benar dan setelah mencoba men-debugnya untuk beberapa saat saya menonaktifkan Firebug dan kodenya berfungsi dengan baik.
sumber
Meskipun
alert(msg);
bekerja dalam skenario "Saya hanya ingin mencari tahu apa yang terjadi" ... setiap pengembang telah menghadapi kasus di mana Anda berakhir dalam lingkaran (sangat besar atau tak berujung) yang tidak dapat Anda lepaskan.Saya akan merekomendasikan bahwa selama pengembangan jika Anda menginginkan opsi debug yang sangat di-wajah Anda, gunakan opsi debug yang memungkinkan Anda keluar. (PS Opera, Safari? Dan Chrome? Semuanya memiliki ini tersedia di dialog aslinya)
Dengan cara di atas, Anda bisa mendapatkan diri Anda dalam lingkaran besar debugging popup, di mana menekan Enter/ Okmemungkinkan Anda melompat melalui setiap pesan, tetapi menekan Escape/ Cancelmemungkinkan Anda keluar dengan baik.
sumber
Saya menggunakan menu / konsol pengembang WebKit (Safari 4). Ini hampir identik dengan Firebug.
console.log()
adalah hitam baru - jauh lebih baik daripadaalert()
.sumber
Langkah pertama saya adalah selalu memvalidasi HTML dan memeriksa sintaks dengan JSLint . Jika Anda memiliki markup bersih dan kode JavaScript yang valid maka sekarang waktunya untuk Firebug atau debugger lain.
sumber
Visual Studio 2008 memiliki beberapa alat debugging JavaScript yang sangat bagus. Anda dapat melepaskan breakpoint di kode JavaScript sisi klien Anda dan melewatinya menggunakan alat yang sama persis seperti yang Anda lakukan pada kode sisi server. Tidak perlu melampirkan ke proses atau melakukan sesuatu yang rumit untuk mengaktifkannya.
sumber
Saya menggunakan beberapa alat: Fiddler , Firebug, dan Visual Studio. Saya dengar Internet Explorer 8 memiliki debugger bawaan yang bagus.
sumber
Saya dulu menggunakan Firebug , sampai Internet Explorer 8 keluar. Saya bukan penggemar berat Internet Explorer, tetapi setelah menghabiskan beberapa waktu dengan alat pengembang bawaan, yang mencakup debugger yang sangat bagus, tampaknya tidak ada gunanya menggunakan yang lain. Saya harus memberi tip kepada Microsoft bahwa mereka melakukan pekerjaan yang luar biasa pada alat ini.
sumber
Anda juga dapat memeriksa YUI Logger . Yang harus Anda lakukan untuk menggunakannya adalah menyertakan beberapa tag di HTML Anda. Ini adalah tambahan yang bermanfaat untuk Firebug, yang kurang lebih merupakan suatu keharusan.
sumber
Saya menemukan versi baru Internet Explorer 8 (tekan F12) sangat bagus untuk men-debug kode JavaScript.
Tentu saja, Firebug bagus jika Anda menggunakan Firefox.
sumber
Selain menggunakan debugger JavaScript Visual Studio, saya menulis panel sederhana saya sendiri yang saya sertakan ke halaman. Ini seperti jendela Immediate dari Visual Studio. Saya dapat mengubah nilai variabel saya, memanggil fungsi saya, dan melihat nilai variabel. Ini hanya mengevaluasi kode yang tertulis di bidang teks.
sumber
Saya menggunakan Venkman , debugger JavaScript untuk aplikasi XUL .
sumber
Selain Firebug dan ekstensi pengembang asli peramban, JetBrains WebStorm IDE hadir dengan dukungan debug jarak jauh untuk Firefox dan Chrome ( Perlu ekstensi) bawaan .
Juga mendukung:
Pilihan untuk menguji ini secara gratis adalah uji coba 30 atau menggunakan Versi Akses Awal .
sumber
Jika Anda menggunakan Visual Studio , cukup letakkan di
debugger;
atas kode yang ingin Anda debug. Selama eksekusi, kontrol akan berhenti di tempat itu, dan Anda dapat men-debug langkah demi langkah dari sana.sumber
Seperti kebanyakan jawaban, itu sangat tergantung: Apa yang ingin Anda capai dengan debugging? Pengembangan dasar, memperbaiki masalah kinerja? Untuk pengembangan dasar, semua jawaban sebelumnya lebih dari cukup.
Untuk pengujian kinerja secara khusus, saya merekomendasikan Firebug. Mampu membuat profil metode mana yang paling mahal dalam hal waktu sangat berharga untuk sejumlah proyek yang telah saya kerjakan. Karena pustaka sisi klien menjadi semakin kuat, dan lebih banyak tanggung jawab ditempatkan pada sisi klien secara umum, jenis debugging dan profiling ini hanya akan menjadi lebih berguna.
API Konsol Firebug: http://getfirebug.com/console.html
sumber
Dengan menekanF12 pengembang web dapat dengan cepat men-debug kode JavaScript tanpa meninggalkan browser. Itu dibangun ke dalam setiap instalasi Windows.
Di Internet Explorer 11 , alat F12 menyediakan alat debugging seperti breakpoint, menonton dan melihat variabel lokal, dan konsol untuk pesan dan eksekusi kode langsung.
sumber