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]
+ 1yerine kullandıysan bu nasıl olurdu ++? Sayı eklerken önce veya sonra artırmanın bir yolu var mı?
x10 olarak başlarsa, değeri r121, yani 10 + 11'dir. İlk x++ifadenin değeri 10'dur ve x11'e çıkar. İkinci x++ifadenin değeri 11'dir ve x12'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 */
++xDeğ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 xolan0
Ve daha sonra xherhangi bir yerde değişken kullandığınızda , ikinci ifade yürütülür
İkinci ifade, bu x + 1ifadenin 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 ++xifade aşağı
x = x + 1;
x = x;
İlk ifade, bu x + 1ifadenin değerini döndürür.(1 + 1) = 2
İkinci deyim değerini verir xki 2böylece x = 2böylece döner2
Bu artışın ve artışın ne olduğunu anlamanıza yardımcı olacağını umuyoruz!