एकमात्र बार मैंने इन ऑपरेटरों को निराश देखा, Douglas Crockford'sJavaScript: The Good Parts पुस्तक में था।
परिशिष्ट "बैड पार्ट्स" से हवाला देते हुए:
वेतन वृद्धि और घटती ऑपरेटरों के लिए यह संभव है एक अत्यंत संक्षिप्त शैली में लिखने के लिए बनाते हैं।
for (p = src, q = dest; !*p; p++, q++) *q = *p;
वे भी एक प्रोग्रामिंग शैली है कि, के रूप में यह पता चला है, लापरवाह है प्रोत्साहित करते हैं: जैसे C भाषाओं में, वे यह संभव एक-लाइनर्स कि स्ट्रिंग प्रतियां कर सकता है लिखने के लिए बनाते हैं। अधिकांश बफर ओवररन बग जो भयानक सुरक्षा भेद्यताएं उत्पन्न करते हैं, इस तरह के कोड के कारण थे।
अपने स्वयं के अभ्यास में, मैंने देखा कि जब मैंनेऔर --,
का उपयोग किया था तो मेरा कोड बहुत सख्त, बहुत गुप्त था। इसलिए, अनुशासन के मामले में, मैं अब उनका उपयोग नहीं करता हूं। मुझे लगता है कि नतीजतन, मेरी कोडिंग शैली स्पष्ट हो गई है।
इसके अलावा, JSLint documentation (कोड गुणवत्ता उपकरण है जिसमें उन्होंने लिखा है) से उद्धृत:
++
(वेतन वृद्धि) और --
(घटती) ऑपरेटरों द्वारा बुरा कोड में योगदान करने के लिए जाने जाते हैं अत्यधिक चालबाजी को प्रोत्साहित करना। वायरस और अन्य सुरक्षा पुरुषों को सक्षम करने में वे केवल दोषपूर्ण वास्तुकला के लिए दूसरे स्थान पर हैं। एक प्लसप्लस विकल्प है जो इन ऑपरेटरों के उपयोग को प्रतिबंधित करता है।
वह वास्तव में इन ऑपरेटरों को पसंद नहीं करता है ... लेकिन चलो! मुझे लगता है कि हम अभी भी ++
और --
ऑपरेटरों को क्रिप्टिक कोड लिखने के बिना उपयोग कर सकते हैं। मैं उनका उपयोग करता हूं, और मुझे उन्हें पसंद है। हर कोई उनका उपयोग करता है।
ध्यान दें कि हालांकि JSLint में इन ऑपरेटरों को अस्वीकार करने का विकल्प है, यह विकल्प डिफ़ॉल्ट रूप से सक्षम नहीं है।
उन्हें एक ही चीज़ के रूप में व्याख्या किया जाता है। आपने इसे कहां सुना? –
जेएसलिंट जेसन की शिकायत करेगा। – tbranyen
क्रॉकफ़ोर्ड, लगभग निश्चित रूप से। –