Bagaimana saya bisa mencetak pesan ke konsol kesalahan, lebih disukai termasuk variabel?
Misalnya, sesuatu seperti:
print('x=%d', x);
javascript
debugging
Mark Harrison
sumber
sumber
Jawaban:
Instal Firebug dan kemudian Anda dapat menggunakan
console.log(...)
danconsole.debug(...)
, dll. (Lihat dokumentasi untuk lebih lanjut).sumber
console.log()
dll harus bekerja di semua browser, termasuk IE. Namun, dalam semua kasus, Anda harus memiliki jendela debugger terbuka pada saat itu, jika tidak panggilanconsole
akan menghasilkan kesalahan.Anda juga dapat menambahkan CSS ke pesan logging Anda:
sumber
console.log
Anda dapat menggunakan css di dalam konsol: |Pengecualian dimasukkan ke konsol JavaScript. Anda dapat menggunakannya jika Anda ingin Firebug dinonaktifkan.
Pemakaian:
sumber
throw
harus dibungkus dengansetTimeout
?Salah satu cara yang baik untuk melakukan ini yang bekerja lintas-browser diuraikan dalam Debugging JavaScript: Membuang Peringatan Anda! .
sumber
throw()
jelas bukan cara untuk melakukan ini. Anda akan mendapat masalah cepat atau lambat. bagi saya itu lebih cepat :(Berikut ini adalah solusi untuk pertanyaan literal tentang cara mencetak pesan ke konsol kesalahan browser, bukan konsol debugger. (Mungkin ada alasan bagus untuk memotong debugger.)
Seperti yang saya catat dalam komentar tentang saran untuk melempar kesalahan untuk mendapatkan pesan di konsol kesalahan, satu masalah adalah bahwa ini akan mengganggu utas eksekusi. Jika Anda tidak ingin menginterupsi utas, Anda dapat membuang kesalahan di utas terpisah, yang dibuat menggunakan setTimeout. Maka solusi saya (yang ternyata merupakan penjabaran dari Ivo Danihelka):
Saya mencantumkan waktu dalam milidetik sejak waktu mulai karena batas waktu dapat membuat urutan pesanan Anda mungkin berubah.
Argumen kedua untuk metode Kesalahan adalah untuk nama file, yang merupakan string kosong di sini untuk mencegah keluaran dari nama file dan nomor baris yang tidak berguna. Dimungkinkan untuk mendapatkan fungsi pemanggil tetapi tidak dengan cara browser yang independen.
Akan lebih baik jika kita dapat menampilkan pesan dengan ikon peringatan atau pesan alih-alih ikon kesalahan, tetapi saya tidak dapat menemukan cara untuk melakukan itu.
Masalah lain dengan menggunakan lemparan adalah bahwa ia dapat ditangkap dan dibuang dengan cara coba-coba yang tertutup, dan menempatkan lemparan tersebut di utas terpisah untuk menghindari rintangan itu juga. Namun, masih ada cara lain kesalahan bisa ditangkap, yaitu jika window.oner handler diganti dengan yang melakukan sesuatu yang berbeda. Tidak bisa membantumu di sana.
sumber
Jika Anda menggunakan Safari , Anda dapat menulis
dan itu muncul tepat di konsol browser.
sumber
console.log()
.console.log()
. Itu tidak benar sampai saat ini.Untuk benar-benar menjawab pertanyaan:
Alih-alih kesalahan, Anda juga dapat menggunakan info, log atau peringatan.
sumber
console.error(..)
adalah fitur non-standar dan tidak boleh digunakan dalam produksi. Apa pendapat Anda tentang hal ini? Apakah Anda memiliki saran untuk programmer pemula yang menggunakanconsole.error
vsconsole.log
?console.log(...)
"non-standar". Dalam hal itu,console.error
sama stabilnya denganconsole.log
.Jika Anda menggunakan Firebug dan perlu mendukung IE, Safari atau Opera juga, Firebug Lite menambahkan dukungan console.log () ke browser ini.
sumber
The WebKit Web Inspektur juga mendukung Firebug konsol API (hanya tambahan kecil untuk jawaban Dan ini ).
sumber
Catatan tentang 'throw ()' yang disebutkan di atas. Tampaknya itu menghentikan eksekusi halaman sepenuhnya (saya memeriksa di IE8), jadi itu tidak sangat berguna untuk masuk "pada proses yang sedang berjalan" (suka melacak variabel tertentu ...)
Saran saya mungkin untuk menambahkan elemen textarea di suatu tempat di dokumen Anda dan untuk mengubah (atau menambahkan) nilainya (yang akan mengubah teksnya) untuk mencatat informasi kapan saja diperlukan ...
sumber
console.log()
,,throw()
dll. Selain itu, tidak ada yang salah dengan perilaku yangthrow()
tampaknya Anda maksudkan - fakta bahwa penghentian eksekusi sengaja dan didokumentasikan ( pengembang. mozilla.org/en-US/docs/Web/JavaScript/Reference/… ), dan ini konsisten dengan bagaimana pengecualian dilemparkan / ditangkap dalam bahasa pemrograman lain. (Jika Anda ingin mencatat konten variabel tanpa menghentikan eksekusi, itulahconsole.log()
console.log
- jadi orang memberikan alternatif. Tentangthrow()
menghentikan eksekusi, tentu saja itu disengaja, tidak ada yang mengatakan tidak. Itu sebabnya biasanya bukan cara yang baik untuk mencatat informasi debug dalam runtime, yang diinginkan OP ...Seperti biasa, Internet Explorer adalah gajah besar dalam sepatu roda yang menghentikan Anda hanya menggunakan
console.log()
.Log jQuery dapat diadaptasi dengan mudah, tetapi sulit untuk menambahkannya di mana-mana. Salah satu solusi jika Anda menggunakan jQuery adalah dengan memasukkannya ke file jQuery Anda di akhir, diperkecil terlebih dahulu:
sumber
Kunjungi https://developer.chrome.com/devtools/docs/console-api untuk referensi api konsol lengkap
Dalam hal ini, objek akan menjadi string kesalahan Anda
sumber
sumber
bekerja untuk saya .. saya mencari ini .. saya menggunakan Firefox. ini skrip saya.
berfungsi di Firefox dan Chrome.
sumber
Cara paling sederhana untuk melakukan ini adalah:
sumber
Untuk menjawab pertanyaan Anda, Anda dapat menggunakan fitur ES6,
sumber
Ini tidak mencetak ke Konsol, tetapi akan membuka Anda Popup peringatan dengan pesan Anda yang mungkin berguna untuk beberapa debugging:
kerjakan saja:
sumber
Dengan sintaks es6 Anda dapat menggunakan:
sumber