JavaScript'te ++
operatörü değişken adından önce ( artış öncesi ) veya sonra kullanabilirsiniz ( artış sonrası ). Varsa bu değişkeni artırmanın yolları arasındaki farklar nelerdir?
JavaScript'te ++
operatörü değişken adından önce ( artış öncesi ) veya sonra kullanabilirsiniz ( artış sonrası ). Varsa bu değişkeni artırmanın yolları arasındaki farklar nelerdir?
Yanıtlar:
Diğer dillerde aynı:
++x
(ön artış) "değişkeni artır; ifadenin değeri son değerdir" anlamına gelirx++
(artım sonrası) "orijinal değeri hatırlayın, ardından değişkeni artırın; ifadenin değeri orijinal değerdir" anlamına gelirŞimdi bağımsız bir ifade olarak kullanıldığında, aynı anlama geliyorlar:
x++;
++x;
Fark, ifadenin değerini başka bir yerde kullandığınızda ortaya çıkar. Örneğin:
x = 0;
y = array[x++]; // This will get array[0]
x = 0;
y = array[++x]; // This will get array[1]
+ 1
yerine kullandıysan bu nasıl olurdu ++
? Sayı eklerken önce veya sonra artırmanın bir yolu var mı?
x
10 olarak başlarsa, değeri r1
21, yani 10 + 11'dir. İlk x++
ifadenin değeri 10'dur ve x
11'e çıkar. İkinci x++
ifadenin değeri 11'dir ve x
12'ye çıkarılmıştır.
++x
değeri artırır, değerlendirir ve saklar.x++
değeri değerlendirir, sonra artırır ve kaydeder.var n = 0, m = 0;
alert(n++); /* Shows 0, then stores n = 1 */
alert(++m); /* Shows 1, then stores m = 1 */
++x
Değişkeni okuduğunuz, değiştirdiğiniz, sonra değerlendirip sakladığınız için mümkün olan yerlerde kullanmanın küçük performans avantajları olduğunu unutmayın . Karşı x++
sen değerini okumak değerlendirmek operatörü değiştirmek, daha sonra saklayın.
Onları anladığım gibi, bağımsız olarak kullanırsanız aynı şeyi yaparlar. Sonuçlarını bir ifade olarak çıkarmaya çalışırsanız, farklı olabilirler. Farkı görmek için alert (++ i) ile karşılaştırıldığında alert (i ++) öğesini deneyin. i ++ eklemeden önce i değerini değerlendirir ve ++ i değerlendirmeden önce eklemeyi yapar.
Örnek için http://jsfiddle.net/xaDC4/ adresine bakın .
var x = 0, y = 0;
//post-increment: i++ returns value then adds one to it
console.log('x++ will log: ', x++); //0
console.log('x after x++ : ', x); //1
//pre-increment: adds one to the value, then returns it
console.log('++y will log: ', ++y); //1
console.log('y after ++y : ', y); //1
Artım sonrası ve artım öncesi anlayışlarımın bir açıklaması var. Bu yüzden buraya koyuyorum.
Şuna atayalım 0
:x
let x = 0;
Artış sonrası ile başlayalım
console.log(x++); // Outputs 0
Neden?
Kırmak Sağlar x++
ifade aşağı
x = x;
x = x + 1;
İlk ifade, değeri x
olan0
Ve daha sonra x
herhangi bir yerde değişken kullandığınızda , ikinci ifade yürütülür
İkinci ifade, bu x + 1
ifadenin değerini döndürür.(0 + 1) = 1
x
Şu durumda olan değeri aklınızda bulundurun :1
Şimdi ön artışla başlayalım
console.log(++x); // Outputs 2
Neden?
Kırmak Sağlar ++x
ifade aşağı
x = x + 1;
x = x;
İlk ifade, bu x + 1
ifadenin değerini döndürür.(1 + 1) = 2
İkinci deyim değerini verir x
ki 2
böylece x = 2
böylece döner2
Bu artışın ve artışın ne olduğunu anlamanıza yardımcı olacağını umuyoruz!