W JavaScript możesz użyć ++
operatora przed ( preinkrementacja ) lub po nazwie zmiennej ( post-inkrementacja ). Jakie są różnice między tymi sposobami inkrementacji zmiennej?
javascript
increment
unary-operator
Derek Adair
źródło
źródło
Odpowiedzi:
Tak samo jak w innych językach:
++x
(pre-inkrementacja) oznacza „inkrementuj zmienną; wartością wyrażenia jest wartość końcowa”x++
(post-inkrementacja) oznacza „zapamiętaj oryginalną wartość, a następnie zwiększ zmienną; wartością wyrażenia jest oryginalna wartość”Teraz, gdy są używane jako samodzielna instrukcja, oznaczają to samo:
Różnica pojawia się, gdy użyjesz wartości wyrażenia w innym miejscu. Na przykład:
źródło
+ 1
zamiast++
? Czy istnieje sposób na zwiększenie wartości przed lub po dodawaniu liczb?x
zaczyna się od 10, wartośćr1
wynosi 21, czyli 10 + 11. Wartość pierwszejx++
ekspresji wynosi 10 ix
zwiększa się do 11 wartości w drugiejx++
ekspresji wynosi 11 ix
zwiększa się do 12++x
zwiększa wartość, a następnie ocenia ją i zapisuje.x++
ocenia wartość, a następnie ją zwiększa i zapisuje.Zauważ, że używanie
++x
tam, gdzie to możliwe, przynosi niewielkie korzyści w zakresie wydajności , ponieważ odczytujesz zmienną, modyfikujesz ją, a następnie oceniasz i zapisujesz. W przeciwieństwie dox++
operatora, w którym odczytujesz wartość, oceniasz ją, modyfikujesz, a następnie zapisujesz.źródło
Jak rozumiem, jeśli używasz ich samodzielnie, robią to samo. Jeśli spróbujesz wypisać ich wynik jako wyrażenie, mogą się one różnić. Wypróbuj alert (i ++) w porównaniu z alertem (++ i), aby zobaczyć różnicę. i ++ oblicza wartość i przed dodaniem, a ++ i wykonuje dodanie przed oceną.
Zobacz przykład http://jsfiddle.net/xaDC4/ .
źródło
jsfiddle
źródło
źródło
Mam wyjaśnienie zrozumienia post-inkrementacji i preinkrementacji. Więc umieszczam to tutaj.
Pozwala przypisać
0
dox
Zacznijmy od post-inkrementacji
Czemu?
Przełammy
x++
wyrażeniePierwsza instrukcja zwraca wartość,
x
której jest0
A później, gdy użyjesz
x
zmiennej w dowolnym miejscu, wykonywana jest druga instrukcjaDruga instrukcja zwraca wartość tego
x + 1
wyrażenia, którą jest(0 + 1) = 1
Należy pamiętać o wartości
x
w tym stanie1
Teraz zacznijmy od preinkrementacji
Czemu?
Przełammy
++x
wyrażeniePierwsza instrukcja zwraca wartość tego
x + 1
wyrażenia, którą jest(1 + 1) = 2
Druga instrukcja zwraca wartość,
x
która jest2
takx = 2
więc zwraca2
Mam nadzieję, że to pomoże ci zrozumieć, czym są post-inkrementacja i preinkrementacja!
źródło