लूप्स के लिए फैंसी
आप गैर-मानक तरीकों से लूप के लिए मानक का उपयोग कर सकते हैं
for ( a; b; c )
अनिवार्य रूप से इसके बराबर है:
a;
while ( b )
{
...
c;
}
इतनी अच्छी चाल है कि अपने कोड को एक while
लूप के साथ लिखें , और फिर इसे a,b,c
एक for
लूप में भागों में विभाजित करें ।
कुछ उदाहरण मैंने लिखे हैं :
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);
अपने बसने वालों को जंजीर
यदि आप कई मानों को आरंभ या रीसेट कर रहे हैं, तो उन सभी चरों के मूल्य को श्रृंखलाबद्ध करें जिनकी आवश्यकता है:
a=b=1;
अवैध कास्टिंग
अपने प्रकारों की जांच न करें, जैसे हैं वैसे ही उनका उपयोग करें। पात्रों की parseInt()
लागत 10
। यदि आपको एक स्ट्रिंग से बाहर निकलने की आवश्यकता है, तो रचनात्मक रहें:
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;
अर्धविराम से बचें
जावास्क्रिप्ट में स्वचालित अर्ध-बृहदान्त्र सम्मिलन है। इसे अक्सर और अच्छी तरह से उपयोग करें।
एक-लाइनर्स
एकल लाइनों, या मापदंडों में जितना संभव हो उतना कम करके कोष्ठक पर सहेजें:
a( realParam1, realParam2, fizz='buzz' )
वेतन वृद्धि / कमी ऑपरेटर
a = a - 1;
foo(a);
तथा
foo(a);
a = a - 1;
के रूप में आसानी से लिखा जा सकता है
foo(--a);
तथा
foo(a--);
क्रमशः।
वैश्विक संदर्भ में उपयोग this
या self
इसके बजायwindow
आत्म व्याख्यात्मक 2 चरित्र बचत।
प्रॉपर्टी एक्सेस दोहराने के लिए ब्रैकेट नोटेशन का उपयोग करें
यह निश्चित रूप से संपत्ति के नाम की लंबाई और पहुंच की संख्या के बीच एक संतुलनकारी कार्य है। a.longFunctionName()
दो बार डॉट नोटेशन के साथ कॉल करने के बजाय , यह नाम को बचाने और ब्रैकेट नोटेशन के माध्यम से फ़ंक्शन को कॉल करने के लिए छोटा है:
a.longFunctionName(b)
a.longFunctionName(c)
//42
-वसेस-
a[f='longFunctionName'](b)
a[f](c)
//34
यह उन कार्यों के साथ विशेष रूप से प्रभावी है document.getElementById
जिन्हें कम किया जा सकता है d[e]
।
ध्यान दें:
ब्रैकेट नोटेशन के साथ, लागत 6 + name.length
पहली बार वर्ण है। प्रत्येक बाद की पहुंच में 3
पात्रों की लागत होती है।
डॉट नोटेशन के लिए, सभी ऐक्सेस कॉस्ट name.length + 1
(+1 .
) इन कैरेक्टर्स।
अगर इस विधि का उपयोग करें 6 + name.length + (3 * (accesses - 1)) < accesses * (name.length + 1)
।
len = संपत्ति के नाम की लंबाई
i = लाभ लेने के लिए न्यूनतम पहुँच
len | i
========
1 | ∞
2 | ∞
3 | 7
4 | 4
5 | 3
6 | 3
7 | 3
8+ | 2
पहुंच की संख्या कई वस्तुओं को भी जोड़ सकती है। यदि आप .length
अलग-अलग सरणियों पर 4 या अधिक बार पहुंचते हैं, तो आप स्ट्रिंग को पकड़े हुए एक ही चर का उपयोग कर सकते हैं 'length'
।
var
) में चर रखने की अनुमति है ? और जावास्क्रिप्ट गोल्फ कोड एक फ़ंक्शन या आउटपुट होना चाहिए सीधे कुछ? मैं ईमानदारी से सोचता हूं कि इससे बहुत फर्क पड़ सकता है।