Döngüler İçin Süslü
Döngü standardını standart olmayan yollarla kullanabilirsiniz
for ( a; b; c )
esasen şuna eşittir:
a;
while ( b )
{
...
c;
}
Bu yüzden iyi bir hile kodunuzu bir whiledöngü ile yazmak ve bir döngü içindeki a,b,cparçalara forbölmektir.
Birkaç örnek Yazdığım :
for(x=y=n;!z;x--,y++)z=i(x)?x:i(y)?y:0
for(a=b=1;b<n;c=a+b,a=b,b=c);
Setlerinizi zincirleyin
Birden fazla değer başlatıyor veya sıfırlıyorsanız, değeri gereken tüm değişkenlere zincirleyin:
a=b=1;
Örtük Döküm
Tiplerinizi kontrol etmeyin, sadece oldukları gibi kullanın. parseInt()maliyet 10karakterleri. Bir dizgiden çıkmanız gerekiyorsa, yaratıcı olun:
a='30';
b='10';
c = a + b; //failure
c = parseInt(a) + parseInt(b) //too long
c = -(-a-b); //try these
c = ~~a+~~b;
c = +a+ +b;
c = a- -b;
Noktalı virgüllerden kaçının
JavaScript'in otomatik yarı-kolon eklemesi vardır. Sık sık ve iyi kullanın.
Tek gömlekleri
Tek satırlara veya parametrelere olabildiğince vurarak desteklerden tasarruf edin:
a( realParam1, realParam2, fizz='buzz' )
Artış / Azaltma operatörleri
a = a - 1;
foo(a);
ve
foo(a);
a = a - 1;
kolayca yeniden yazılabilir
foo(--a);
ve
foo(a--);
sırasıyla.
Global bağlamda kullanın thisveya selfyerinewindow
açıklayıcı 2 karakter tasarruf.
Mülkiyet erişimini tekrarlamak için parantez notasyonu kullanın
Bu kesinlikle özellik adı uzunluğu ve erişim sayısı arasında dengeleyici bir eylemdir. Bunun yerine çağıran a.longFunctionName()iki kez nokta gösterimi ile, bu adı kaydetmek ve ayraç aracılığı işlevi çağırmak için daha kısa:
a.longFunctionName(b)
a.longFunctionName(c)
//42
-vs-
a[f='longFunctionName'](b)
a[f](c)
//34
bu özellikle document.getElementByIddüşürülebilen işlevlerde etkilidir d[e].
Not:
Braket notasyonu ile maliyet 6 + name.lengthilk defa karakterdir. Her takip eden erişimin bir 3karakter maliyeti vardır .
Noktalı gösterim için, tüm erişilen maliyetler name.length + 1(+1 .) karakterleridir.
Eğer bu yöntemi kullanın 6 + name.length + (3 * (accesses - 1)) < accesses * (name.length + 1).
len = özellik adının uzunluğu
i = yararlanmak için minimum erişim
len | i
========
1 | ∞
2 | ∞
3 | 7
4 | 4
5 | 3
6 | 3
7 | 3
8+ | 2
Erişim sayısı birden fazla nesneyi de kapsayabilir. .lengthFarklı dizilerde 4 veya daha fazla kez erişirseniz , dizgeyi tutan aynı değişkeni kullanabilirsiniz 'length'.
var) içine koyma izni var mı? JavaScript golf kodu bir işlev mi olmalı yoksa doğrudan bir şey mi çıktı? Dürüst olmak gerekirse, bunun çok fazla fark yaratabileceğini düşünüyorum.