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 while
döngü ile yazmak ve bir döngü içindeki a,b,c
parçalara for
bö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 10
karakterleri. 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 this
veya self
yerinewindow
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.getElementById
düşürülebilen işlevlerde etkilidir d[e]
.
Not:
Braket notasyonu ile maliyet 6 + name.length
ilk defa karakterdir. Her takip eden erişimin bir 3
karakter 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. .length
Farklı 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.