Rumah  >  Artikel  >  hujung hadapan web  >  Petua untuk menyahpepijat JavaScript dalam petua Google Chrome_javascript

Petua untuk menyahpepijat JavaScript dalam petua Google Chrome_javascript

WBOY
WBOYasal
2016-05-16 16:23:421114semak imbas

Google Chrome bukan sahaja boleh digunakan untuk melayari Internet, tetapi bagi pembangun, ia lebih seperti bantuan pembangunan yang berkuasa.

Jika anda ingin melakukan kerja anda dengan baik, anda mesti mengasah alatan anda. Seterusnya, pengarang akan berkongsi dengan anda beberapa cara untuk menggunakan Chrome.

Jika pembaca tahu cara menambah titik putus JavaScript dalam Chrome, sila teruskan membaca jika tidak, sila buat keputusan anda sendiri.

Andaikan terdapat sekeping kod sedemikian:

Salin kod Kod adalah seperti berikut:

var a = 1;

ujian fungsi(){
var a, b, c, d, e;

a = 2;
b = a - 1;
b = 9;
c = 3;
d = 4;
e = (a b * c) * (a - d);

kembalikan e;
}

ujian();

Kod itu sendiri tidak penting, yang penting adalah bentuknya.

Andaikan e ialah hasil yang akhirnya kita perlukan, tetapi dapati hasilnya tidak betul, jadi kita tetapkan titik putus pada baris di mana e diberikan nilai.

Selepas menetapkan titik putus, gerakkan tetikus ke pembolehubah dan jeda seketika, Chrome akan menggesa anda dengan nilai pembolehubah pada masa ini.

Tetapi ungkapan itu agak rumit, dan hanya melihat nilai pembolehubah tunggal tidak mempunyai kesan. Semuanya kelihatan biasa, tetapi selepas pengiraan, ia adalah salah.

Pada masa ini, anda mungkin ingin mengetahui hasil bahagian ini (a b c Jangan risau, pilih ungkapan dahulu, kemudian gerakkan tetikus ke kawasan yang dipilih dan tinggal seketika).

Chrome memberitahu anda jawapannya secara langsung. Perkara yang lebih menarik masih akan datang.

Klik butang kanan tetikus terus pada kawasan yang dipilih, dan menu akan muncul. Dua item teratas ialah: [Tambah untuk menonton] dan [Nilai dalam konsol]. Sila rujuk gambar untuk paparan yang sepadan.

Apa yang dipanggil jam tangan boleh difahami sebagai pemantauan Sesetengah ungkapan lebih penting dan nilai ungkapan itu mungkin perlu dipantau dalam masa nyata semasa keseluruhan proses penyahpepijatan.

Sebagai contoh, kami menetapkan titik putus pada baris "b = 9;" dan kemudian menambah jam tangan: "a - b" dengan nilai 1. Seperti yang ditunjukkan dalam gambar:

Klik Seterusnya dan laksanakan "b = 9;", yang bermaksud bahawa nilai b telah berubah Sekarang lihat nilai jam tangan: "a - b", iaitu -7.

Ini mencapai kesan pemantauan masa nyata, menjadikan penyahpepijatan lebih mudah dan lebih pantas.

Mari kita lihat apa yang berlaku dengan konsol.

Konsol sudah tentu konsol, dan ekspresi boleh dinilai terus dalam konsol.

Sebagai contoh, jika anda ingin mengetahui hasil (a b c), salin terus ke konsol, tekan Enter, dan hasilnya akan keluar.

Tunggu, ada sesuatu yang tidak kena. Mengapakah konsol mengetahui nilai a, b dan c?

Melaksanakan kod JavaScript dalam konsol tanpa titik putus adalah global. Dalam erti kata lain, pembolehubah x ditakrifkan dalam konsol pada masa ini, dan skop x ini adalah global.

Jika anda menggunakan konsol semasa program terganggu, skop konsol menghadap skop di mana ia terganggu. Dalam erti kata lain, di mana titik putus ditetapkan (atau di mana kod dilaksanakan), skop konsol ada di sana.

Dalam contoh ini, pembolehubah a ditakrifkan dalam skop global dengan nilai 1 pada masa yang sama, pembolehubah tempatan a ditakrifkan dalam skop ujian fungsi dengan nilai 2; Tetapkan titik putus pada "a = 2;", masukkan a dalam konsol, tekan Enter, dan cetak tidak ditentukan.

Oleh kerana atur cara terganggu di dalam ujian fungsi pada masa ini, atur cara dilaksanakan dalam ujian fungsi, jadi skop konsol juga berada dalam ujian fungsi, jadi input a mengakses pembolehubah tempatan a, tetapi pada kali ini pembolehubah tempatan a tidak Tugasan, jadi hasilnya tidak ditentukan.

Itu sahaja yang saya akan kongsikan kali ini saya akan terus berkongsi apabila saya bertemu dengan seseorang yang hebat saya harap ia akan membantu pembaca.

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn