Rumah > Artikel > hujung hadapan web > Perbezaan antara alert() dan console.log() dalam kemahiran javascript_javascript
[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
Hasil makluman dan console.log adalah berbeza?
score = [1,2,3]; sortedScore = []; console.log(score); sortedScore = score.sort(sortNumber) console.log(sortedScore); function sortNumber(a, b) { return b - a; }
Output di atas:
[3, 2, 1]
[3, 2, 1]
Tetapi tukar kepada makluman:
score = [1,2,3]; sortedScore = []; alert(score); sortedScore = score.sort(sortNumber) alert(sortedScore); function sortNumber(a, b) { return b - a; }
Output di atas:
1, 2, 3
3, 2, 1
Mengapa ini berlaku? Ia tidak sepatutnya:
1, 2, 3
3, 2, 1
?
Selepas beberapa penyelidikan, didapati bahawa ia adalah masalah dengan pelaksanaan krom Kami membuat pengoptimuman yang tidak sesuai untuk output dan menangguhkan pelaksanaan sebenar console.log, yang bersamaan dengan penilaian "malas" apabila menghadapi jenis rujukan seperti. tatasusunan dan objek Masalah di atas timbul.
https://bugs.webkit.org/show_bug.cgi?id=35801
Ini adalah BUG yang sangat bersejarah, yang telah ditetapkan dalam versi pembangunan bulan lepas.