Rumah > Artikel > hujung hadapan web > Pengenalan kepada perbezaan antara kemahiran alert() dan console.log()_javascript
Ringkasnya, makluman ialah gesaan pop timbul dan console.log ialah log dalam alat penyahpepijatan Berikut ialah senarai terperinci perbezaan antara alert() dan console.log(),
[1]makluman()
[1.1] Ia mempunyai kesan menyekat Jika anda tidak mengklik OK, kod berikutnya tidak boleh terus melaksanakan
[1.2] alert() hanya boleh mengeluarkan rentetan Jika output makluman ialah objek, kaedah toString() akan dipanggil secara automatik
cth. makluman([1,2,3]);//'1,2,3'
[1.3] makluman tidak menyokong penulisan berbilang parameter, dan hanya boleh mengeluarkan nilai pertama
cth. makluman(1,2,3);//1
[2]console.log()
[2.1] Output pada stesen cetak
[2.2] Boleh mencetak sebarang jenis data
cth. console.log([1,2,3]);//[1,2,3]
[2.3] Menyokong penulisan berbilang parameter
cth. console.log(1,2,3)// 1 2 3
Kaedah toString() dalam rantaian prototaip mengeluarkan alert() dan console.log() dan mendapat hasil yang berbeza
<script type="text/javascript"> var a = [1,2,3]; alert(a); //1,2,3 Array.prototype.toString = function(){ return 'str'; } alert(a); //str </script>
dan
<script type="text/javascript"> var a = [1,2,3]; console.log(a); //[1,2,3] Array.prototype.toString = function(){ return 'str'; } console.log(a); //[1,2,3] </script>
Sebab mengapa kod di atas menghasilkan hasil yang berbeza adalah seperti berikut:
console.log() boleh mencetak sebarang jenis data. Dan alert() hanya boleh mengeluarkan rentetan Jika output amaran ialah objek, kaedah toString() akan dipanggil secara automatik. Jika anda mahu output console.log() sama dengan alert, anda perlu memanggil toString():
console.log(obj. toString() );
Ia tiada kaitan dengan sama ada anda menulis toString() atau tidak toString() yang anda tulis sendiri hanya mengatasi kaedah lalai toString() objek.
Jika anda tidak mengatasi kaedah toString(), alert() juga akan memanggil kaedah lalai.
Masih ayat yang sama: console.log() boleh mencetak sebarang jenis data dan akan dipanggil kerana anda telah menimpa toString() sendiri. Jika log() hanya boleh mencetak rentetan, maka kaedah log konsol tidak diperlukan.
Sebab utamanya ialah jenis data yang dijangkakan oleh kedua-dua fungsi adalah berbeza. Jenis data yang dijangkakan oleh alert() ialah rentetan. Ini bersamaan dengan menggunakan objek dalam konteks rentetan, dan penukaran yang sepadan secara semula jadi akan dibuat. console.log() jelas menerima sebarang jenis data. Kemudian dia tidak perlu bertukar. Maksudnya, ia tidak perlu diletakkan dalam konteks rentetan. Kemudian OBJ secara semula jadi adalah jenis data awalnya.
Kandungan di atas menyenaraikan perbezaan antara alert() dan console.log() Rakan yang mempunyai idea berbeza dialu-alukan untuk melamar, berkongsi dengan semua orang dan belajar serta maju bersama.