В JavaScript вы можете использовать ++
оператор перед ( преинкремент ) или после имени переменной ( постинкремент ). В чем, если таковые имеются, различия между этими способами приращения переменной?
javascript
increment
unary-operator
Дерек Адэйр
источник
источник
Ответы:
То же, что и на других языках:
++x
(предварительное увеличение) означает «увеличить переменную; значение выражения является окончательным значением»x++
(постинкремент) означает «запомнить исходное значение, затем увеличить значение переменной; значение выражения является исходным значением»Теперь, когда они используются как самостоятельное утверждение, они означают одно и то же:
Разница возникает, когда вы используете значение выражения в другом месте. Например:
источник
+ 1
вместо++
? Есть ли способ увеличения до или после добавления чисел?x
начинается с 10, значениеr1
равно 21, что составляет 10 + 11. Значение первогоx++
выражения равно 10 иx
увеличивается до 11. Значение второгоx++
выражения равно 11 иx
увеличивается до 12.++x
увеличивает значение, затем оценивает и сохраняет его.x++
оценивает значение, затем увеличивает и сохраняет его.Обратите внимание, что при использовании
++x
там, где это возможно, есть небольшие преимущества в производительности , поскольку вы читаете переменную, изменяете ее, затем оцениваете и сохраняете. По сравнению сx++
оператором, в котором вы читаете значение, оцениваете его, изменяете и сохраняете.источник
Как я понимаю, если вы используете их автономно, они делают то же самое. Если вы попытаетесь вывести их результат в виде выражения, они могут отличаться. Попробуйте alert (i ++) по сравнению с alert (++ i), чтобы увидеть разницу. i ++ оценивает i перед сложением, а ++ i добавляет перед оценкой.
См. Http://jsfiddle.net/xaDC4/ для примера.
источник
jsfiddle
источник
источник
У меня есть объяснение понимания пост-инкремента и пре-инкремента. Так что я выкладываю это здесь.
Позволяет присвойте
0
Tox
Начнем с постинкремента
Зачем?
Давайте разберем
x++
выражениеПервое утверждение возвращает значение
x
которого0
И позже, когда вы используете
x
переменную в любом месте, то выполняется второй операторВторое утверждение возвращает значение этого
x + 1
выражения, которое(0 + 1) = 1
Имейте в виду значение
x
в этом состоянии, которое1
Теперь давайте начнем с предварительного увеличения
Зачем?
Давайте разберем
++x
выражениеПервый оператор возвращает значение этого
x + 1
выражения, которое(1 + 1) = 2
Второе утверждение возвращает значение
x
которого,2
такимx = 2
образом, оно возвращает2
Надеюсь, это поможет вам понять, что такое постинкремент и преинкремент!
источник