Javascript я ++ vs ++ i

В javascript я видел, что i++ используется во многих случаях, и я понимаю, что он добавляет одно к предыдущему значению:

for (var i=1; i<=10; i++) {
  console.log(i);
}

Ответ 1

Разница между i++ и ++i является значением выражения.

Значение i++ - это значение i до приращения. Значение ++i - это значение i после приращения.

Пример:

var i = 42;
alert(i++); // shows 42
alert(i); // shows 43
i = 42;
alert(++i); // shows 43
alert(i); // shows 43

Операторы i-- и --i работают одинаково.

Ответ 2

++variable увеличивает значение переменной, возвращая новое значение.

variable++ увеличивает значение переменной, но возвращает старое значение.

--variable уменьшает значение переменной, возвращая новое значение.

variable-- уменьшает значение переменной, но возвращает старое значение.

Например:

a = 5;
b = 5;
c = ++a;
d = b++;

a равно 6, b равно 6, c равно 6 и d равно 5.

Если вы не используете результат, операторы префикса работают одинаково с операторами postfix.

Ответ 3

i++= Используйте значение я в выражении, затем увеличьте его на 1
++i= Увеличить значение я на 1, затем использовать в инструкции.

Ответ 4

Я думал о полноте, я бы добавил ответ, свойственный первому из вопросов OP:

Один из ваших примеров показывает, что я ++/++ я используется в цикле for:

for (i=1; i<=10; i++) {
  alert(i);
}

вы получите 1-10 в своих оповещениях независимо от того, что вы используете. Пример:

console.log("i++");
for (i=1; i<=10; i++) {
  console.log(i);
}
console.log("++i");
for (i=1; i<=10; ++i) {
  console.log(i);
}

Вставьте их в окно консоли, и вы увидите, что оба они имеют одинаковый вывод.

Ответ 5

var i = 0;
console.log(i++); // 0
console.log(++i); // 2

Ответ 6

Определяет, происходит ли приращение до или после использования значения переменной.

var j = 2;
console.log(j++);   // 2
console.log(j);     // 3

var k = 2;
console.log(++k);   // 3
console.log(k);     // 3

Ответ 7

В одном случае все эти ответы не упоминаются, что происходит, когда i++ и ++i используются в операциях с другими числами. Пока все "i++ есть раньше, ++i после" концепции легко понять, когда выражение само по себе, оно становится намного более запутанным, когда вы начинаете комбинировать утверждения. См. Ниже примеры C и D.

// Example A
var i = 42;
var a = i++; // equivalent to `var a = i; i++;`
console.log(a); // 42
console.log(i); // 43

// Example B
var i = 42;
var b = ++i; // equivalent to `i++; var b = i;`
console.log(b); // 43
console.log(i); // 43

// Example C
var i = 42;
var c = i++ * 2; // equivalent to `var c = i*2; i++;`
console.log(c); // 84
console.log(i); // 43

// Example D
var i = 42;
var d = ++i * 2; // equivalent to `i++; var d = i*2;`
console.log(d); // 86
console.log(i); // 43

Обратите внимание, что в примере C i++ не оценивается до умножения и назначения c. Это учитывает ошибочное представление о том, что "i++ следует оценивать сначала в порядке операций". Таким образом, оператор i++ * 2 фактически вычисляет i * 2 до того, как он увеличит i.

Ответ 8

Я знаю, на этот вопрос 2011 года уже был дан ответ.

++ variable: переменная приращения перед использованием переменной
variable ++: переменная Increment после использования переменной

Но я полагал, что все же может быть полезно включить ответ со сниппетом, чтобы подтвердить, как они ведут себя в цикле for.

Просто чтобы проверить в вашем браузере, что на самом деле нет никакой разницы при использовании ++ я по сравнению с я ++ в декларации цикла for.
И бросать -i против i-- пока мы на нем.

console.log("-- with looping --");

console.log("using ++i in a for loop");
for (var i=1; i<=3; ++i) {
  console.log(i);
}

console.log("using i++ in a for loop");
for (var i=1; i<=3; i++) {
  console.log(i);
}

console.log("using --i in a for loop");
for (var i=3; i>=1; --i) {
  console.log(i);
}

console.log("using i-- in a for loop");
for (var i=3; i>=1; i--) {
  console.log(i);
}

console.log("-- without looping --");
var i = 1;
console.log("i: "+ i);
console.log("i++: "+ i++);
console.log("i: "+ i);
console.log("++i: "+ ++i);
console.log("i: "+ i);
console.log("--i: "+ --i);
console.log("i: "+ i);
console.log("i--: "+ i--);
console.log("i: "+ i);