Saya ingin mengatakan perbedaannya murni gaya, tetapi saya benar-benar ragu. Perhatikan contoh berikut:
/*
Add trim() functionality to JavaScript...
1. By extending the String prototype
2. By creating a 'stand-alone' function
This is just to demonstrate results are the same in both cases.
*/
// Extend the String prototype with a trim() method
String.prototype.trim = function() {
return this.replace(/^\s+|\s+$/g, '');
};
// 'Stand-alone' trim() function
function trim(str) {
return str.replace(/^\s+|\s+$/g, '');
};
document.writeln(String.prototype.trim);
document.writeln(trim);
Di Safari, Chrome, Opera, dan Internet Explorer (diuji di IE7 dan IE8), ini akan mengembalikan yang berikut:
function () {
return this.replace(/^\s+|\s+$/g, '');
}
function trim(str) {
return str.replace(/^\s+|\s+$/g, '');
}
Namun, Firefox akan menghasilkan hasil yang sedikit berbeda:
function () {
return this.replace(/^\s+|\s+$/g, "");
}
function trim(str) {
return str.replace(/^\s+|\s+$/g, "");
}
Kutipan tunggal telah digantikan oleh tanda kutip ganda. (Perhatikan juga bagaimana indentasi spasi diganti dengan empat spasi.) Ini memberi kesan bahwa setidaknya satu browser mem-parsing JavaScript secara internal seolah-olah semuanya ditulis menggunakan tanda kutip ganda. Orang mungkin berpikir, Firefox membutuhkan waktu lebih sedikit untuk mem-parsing JavaScript jika semuanya sudah ditulis sesuai dengan 'standar' ini.
Yang, omong-omong, membuatku menjadi panda yang sangat sedih, karena aku pikir satu tanda kutip terlihat jauh lebih bagus dalam kode. Plus, dalam bahasa pemrograman lain, mereka biasanya lebih cepat digunakan daripada tanda kutip ganda, jadi itu hanya masuk akal jika hal yang sama berlaku untuk JavaScript.
Kesimpulan: Saya pikir kita perlu melakukan lebih banyak penelitian tentang ini.
Sunting: Ini mungkin menjelaskan hasil tes Peter-Paul Koch dari tahun 2003.
Tampaknya tanda kutip tunggal kadang - kadang lebih cepat di Explorer Windows (kira-kira 1/3 dari tes saya memang menunjukkan waktu respons lebih cepat), tetapi jika Mozilla menunjukkan perbedaan sama sekali, ia menangani tanda kutip ganda sedikit lebih cepat. Saya tidak menemukan perbedaan sama sekali di Opera.
Sunting 2014: Versi modern Firefox / Spidermonkey tidak melakukan ini lagi.