В JavaScript ви можете використовувати ++
оператор до ( попереднє збільшення ) або після назви змінної ( після збільшення ). Які, якщо такі є, відмінності між цими способами збільшення змінної?
В JavaScript ви можете використовувати ++
оператор до ( попереднє збільшення ) або після назви змінної ( після збільшення ). Які, якщо такі є, відмінності між цими способами збільшення змінної?
Відповіді:
Те саме, що і в інших мовах:
++x
(попередній приріст) означає "приріст змінної; значення виразу є кінцевим значенням"x++
(пост-приріст) означає "запам'ятати початкове значення, потім збільшити змінну; значення виразу - початкове значення"Тепер, коли вони використовуються як окремий вислів, вони означають те саме:
x++;
++x;
Різниця виникає, коли ви використовуєте значення виразу в іншому місці. Наприклад:
x = 0;
y = array[x++]; // This will get array[0]
x = 0;
y = array[++x]; // This will get array[1]
+ 1
замість цього ++
? Чи існує спосіб збільшення до чи після додавання чисел?
x
починається з 10, значення r1
становить 21, що становить 10 + 11. Значення першого x++
виразу становить 10 і x
збільшується до 11. Значення другого x++
виразу 11 та x
збільшується до 12.
++x
збільшує значення, потім оцінює і зберігає його.x++
оцінює значення, потім збільшує і зберігає його.var n = 0, m = 0;
alert(n++); /* Shows 0, then stores n = 1 */
alert(++m); /* Shows 1, then stores m = 1 */
Зауважте, що існують невеликі переваги від використання, ++x
де можливо, оскільки ви читаєте змінну, модифікуєте її, потім оцінюєте та зберігаєте її. На відміну від x++
оператора, де ви читаєте значення, оцінюйте його, модифікуйте, а потім зберігайте.
Як я їх розумію, якщо ви використовуєте їх самостійно, вони роблять те саме. Якщо ви спробуєте вивести результат їх як вираз, то вони можуть відрізнятися. Спробуйте сповістити (i ++) порівняно з попередженням (++ i), щоб побачити різницю. i ++ оцінює i до додавання, і ++ я додає перед оцінкою.
Для прикладу див. Http://jsfiddle.net/xaDC4/ .
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
Я маю пояснення щодо розуміння пост-інкрементного та попереднього збільшення. Тож я його тут кладу.
Дозволяє надайте 0
Tox
let x = 0;
Почнемо з інкремента
console.log(x++); // Outputs 0
Чому?
Дозволяє розбити x++
вираз вниз
x = x;
x = x + 1;
Перший оператор повертає значення, x
яке є0
І пізніше, коли ви використовуєте x
змінну де завгодно, тоді виконується друге твердження
Друге твердження повертає значення цього x + 1
виразу, яке є(0 + 1) = 1
Майте на увазі значення x
цього стану, яке є1
Тепер давайте почнемо з попереднього збільшення
console.log(++x); // Outputs 2
Чому?
Дозволяє розбити ++x
вираз вниз
x = x + 1;
x = x;
Перше твердження повертає значення цього x + 1
виразу, яке є(1 + 1) = 2
Друге твердження повертає значення x
якого є 2
таким, x = 2
таким чином воно повертається2
Сподіваємось, це допоможе вам зрозуміти, що таке збільшення та попереднє збільшення!