2011-05-16 9 views
8

संभव डुप्लिकेट:
++someVariable Vs. someVariable++ in Javascriptजावास्क्रिप्ट वेतन वृद्धि

मैं आप बस i++ करके एक चर करने के लिए एक जोड़ सकते हैं (यह मानते हुए मैं अपने चर रहा है)। यह किसी सरणी के माध्यम से फिर से या "के लिए" कथन में इसका उपयोग करते समय देखा जा सकता है। ऑनलाइन उपयोग करने के लिए कुछ कोड ढूंढने के बाद, मैंने देखा कि कथन के लिए ++i (जैसा कि i++ पर लगाया गया है) का उपयोग किया गया था।

मैं सोच रहा था कि क्या कोई महत्वपूर्ण अंतर था या दोनों को अलग-अलग संभाला जाता है।

+0

यहां उत्तर दें: [http://stackoverflow.com/questions/3469885/somevariable-vs-somevariable-in-javascript ](httpoverflow.com/questions/3469885/somevariable-vs-somevariable-in- जावास्क्रिप्ट) – pixelbobby

उत्तर

29

हां बड़ा अंतर है।

var i = 0; 

var c = i++; //c = 0, i = 1 
    c = ++i; //c = 2, i = 2 
    //to make things more confusing: 
    c = ++c + c++; //c = 6 
    //but: 
    c = c++ + c++; //c = 13 

और यहाँ यह सब एक साथ रखा करने के लिए एक बेला है: पद वेतन वृद्धि http://www.w3schools.com/js/js_operators.asp यह है बनाम पूर्व वेतन वृद्धि: http://jsfiddle.net/maniator/ZcKSF/

+1

+1 क्योंकि आप इसे "पूर्व-वृद्धि/पोस्ट-वृद्धि" के रूप में वर्णित करने के बजाय व्यवहार दिखाते हैं। – KeithS

+0

@ किथ्स धन्यवाद^_^ – Neal

+0

यह जवाब होगा ... 8 मिनट में: 3 – FreeSnow

4

++i का मान i + 1 है और i++ का मान केवल i है। मूल्यांकन के बाद, ii + 1 है। यह समय में एक अंतर है, यही कारण है कि उन्हें अक्सर 'पूर्व-वृद्धि' और 'पोस्ट-वृद्धि' कहा जाता है। एक लूप में, हालांकि, यह शायद ही कभी मायने रखता है।

1

++ मुझे पूर्व-वृद्धि कहा जाता है और i ++ को बाद में वृद्धि कहा जाता है। अंतर तब होता है जब परिवर्तनीय वृद्धि हुई है। एक चर को पूर्ववर्ती करना आमतौर पर 1 जोड़ता है और फिर उस मान का उपयोग करता है, जबकि पोस्ट-वृद्धि वृद्धि चर का उपयोग करती है और फिर वृद्धि करती है।

2

इस लिंक पर एक नजर है। वे दोनों मूल्य में वृद्धि को समाप्त करते हैं लेकिन कोई वृद्धि (++ y) से पहले मान देता है और दूसरा एक मूल्य (y ++) के बाद देता है। जब यह एक में उपयोग करते हुए पाश के लिए हालांकि, यह कोई फर्क नहीं करता है -

for(var i = 0; i < 100; i++) { ... } 

है एक ही रूप में

for(var i = 0; i < 100; ++i) { ... } 
+3

[कृपया w3schools से लिंक न करें।] (Http://w3fools.com) – Pointy

2
a=1; 
b=1; 
c=++a;//the value of a is incremented first and then assigned to c 
d=b++;//the value of b is assigned to d first then incremented 

अब आप एक, ख, ग मुद्रित करते हैं, d..the उत्पादन होगा:

3

लोग डगलस Crockford की तरह incrementing की कि जिस तरह से उपयोग करने के लिए नहीं की सलाह, राफे केटलर ने क्या वर्णन किया है इसके कारण अन्य कारणों में से। कोई फर्क नहीं पड़ता कि आप कितने अनुभवी हैं, कभी-कभी ++i/i++ आपको आश्चर्यचकित करेगा। विकल्प केवल i += 1, पठनीय, समझने योग्य और स्पष्ट का उपयोग करके 1 जोड़ने के लिए है।

+0

अच्छी पोस्ट :) टिप्पणी के लिए धन्यवाद! – FreeSnow

संबंधित मुद्दे