Rumah >hujung hadapan web >tutorial js >Pengenalan kepada perbezaan antara kemahiran alert() dan console.log()_javascript

Pengenalan kepada perbezaan antara kemahiran alert() dan console.log()_javascript

WBOY
WBOYasal
2016-05-16 15:42:362432semak imbas

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.

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