Saya tahu ini adalah pertanyaan yang sangat lama tetapi saya tidak melihat ada yang berbicara tentang perbedaan utama antara process.stdout.write
dan console.log
dan saya hanya ingin menyebutkannya.
Seperti Mauvis Leford dan TK-421 tunjukkan, console.log
menambahkan line-break
karakter di akhir baris ( \n
) tapi itu tidak semua yang dilakukannya.
Kode tidak berubah sejak 0.10.X
versi setidaknya dan sekarang kami memiliki 5.X
versi.
Ini kodenya:
Console.prototype.log = function() {
this._stdout.write(util.format.apply(this, arguments) + '\n');
};
Seperti yang Anda lihat, ada bagian yang mengatakan .apply(this, arguments)
dan itu membuat perbedaan besar pada fungsionalitas. Lebih mudah dijelaskan dengan contoh:
process.stdout.write
memiliki fungsi yang sangat mendasar, Anda bisa menulis sesuatu di sana, seperti ini:
process.stdout.write("Hello World\n");
Jika Anda tidak meletakkan garis putus-putus di akhir, Anda akan mendapatkan karakter aneh setelah string Anda, sesuatu seperti ini:
process.stdout.write("Hello World"); //Hello World%
(Saya pikir itu berarti sesuatu seperti "akhir dari program", jadi Anda akan melihatnya hanya jika Anda process.stdout.write
digunakan di akhir file Anda dan Anda tidak menambahkan garis putus-putus)
Di sisi lain, console.log
bisa berbuat lebih banyak.
Anda bisa menggunakannya dengan cara yang sama
console.log("Hello World"); //You don't need the break line here because it was already formated
dan juga karakter aneh itu menghilang
Anda dapat menulis lebih dari satu string
console.log("Hello", "World");
Anda dapat membuat asosiasi
console.log("Hello %s", "World") //Useful when "World" is inside a variable
Yang itu saja, bahwa fungsionalitas tambahan diberikan berkat util.format.apply
bagian itu (saya bisa berbicara banyak tentang apa sebenarnya ini tetapi Anda mengerti maksud saya, Anda dapat membaca lebih lanjut di sini ).
Saya harap seseorang menemukan informasi ini berguna.