В javascript я видел, что i++ используется во многих случаях, и я понимаю, что он добавляет одно к предыдущему значению:
for (var i=1; i<=10; i++) {
console.log(i);
}В javascript я видел, что i++ используется во многих случаях, и я понимаю, что он добавляет одно к предыдущему значению:
for (var i=1; i<=10; i++) {
console.log(i);
}Разница между 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 работают одинаково.
++variable увеличивает значение переменной, возвращая новое значение.
variable++ увеличивает значение переменной, но возвращает старое значение.
--variable уменьшает значение переменной, возвращая новое значение.
variable-- уменьшает значение переменной, но возвращает старое значение.
Например:
a = 5;
b = 5;
c = ++a;
d = b++;
a равно 6, b равно 6, c равно 6 и d равно 5.
Если вы не используете результат, операторы префикса работают одинаково с операторами postfix.
i++= Используйте значение я в выражении, затем увеличьте его на 1 ++i= Увеличить значение я на 1, затем использовать в инструкции.
Я думал о полноте, я бы добавил ответ, свойственный первому из вопросов 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);
}
Вставьте их в окно консоли, и вы увидите, что оба они имеют одинаковый вывод.
var i = 0;
console.log(i++); // 0
console.log(++i); // 2
Определяет, происходит ли приращение до или после использования значения переменной.
var j = 2;
console.log(j++); // 2
console.log(j); // 3
var k = 2;
console.log(++k); // 3
console.log(k); // 3
В одном случае все эти ответы не упоминаются, что происходит, когда 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.
Я знаю, на этот вопрос 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);