Rumah >hujung hadapan web >tutorial js >Perbezaan antara alert() dan console.log() dalam kemahiran javascript_javascript

Perbezaan antara alert() dan console.log() dalam kemahiran javascript_javascript

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

[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.

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