Aradaki farkın tamamen stilistik olduğunu söylemek isterim, ama gerçekten şüphelerim var. Aşağıdaki örneği düşünün:
/*
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);
Safari, Chrome, Opera ve Internet Explorer'da (IE7 ve IE8'de test edilmiştir), bu aşağıdakileri döndürür:
function () {
return this.replace(/^\s+|\s+$/g, '');
}
function trim(str) {
return str.replace(/^\s+|\s+$/g, '');
}
Ancak, Firefox biraz farklı bir sonuç verecektir:
function () {
return this.replace(/^\s+|\s+$/g, "");
}
function trim(str) {
return str.replace(/^\s+|\s+$/g, "");
}
Tek tırnakların yerine çift tırnaklar konur. (Ayrıca, girintili alanın nasıl dört boşlukla değiştirildiğine dikkat edin.) Bu, en az bir tarayıcının her şeyi çift tırnak kullanılarak yazılmış gibi JavaScript'i dahili olarak ayrıştırdığı izlenimini verir. Her şey zaten bu 'standarda' göre yazılmışsa, JavaScript'in ayrıştırılması Firefox'un daha az zaman alacağını düşünebilir.
Bu arada, beni çok üzücü bir panda yapar, çünkü tek tırnakların kodda daha hoş görüneceğini düşünüyorum. Ayrıca, diğer programlama dillerinde, genellikle çift tırnaklardan daha hızlıdırlar, bu nedenle yalnızca JavaScript'e uygulandığında anlamlı olur.
Sonuç: Sanırım bu konuda daha fazla araştırma yapmamız gerekiyor.
Düzenleme: Bu Peter-Paul Koch'un 2003 yılındaki test sonuçlarını açıklayabilir .
Explorer Windows'da tek tırnak işaretleri bazen daha hızlı görünüyor (testlerimin kabaca 1 / 3'ü daha hızlı tepki süresi gösterdi), ancak Mozilla bir fark gösteriyorsa, çift tırnakları biraz daha hızlı işler. Opera'da hiç fark bulamadım.
Edit 2014: Firefox / Spidermonkey'in modern sürümleri artık bunu yapmıyor.