programing tip

자바 스크립트 i ++ 대 ++ i

itbloger 2020. 8. 11. 08:03
반응형

자바 스크립트 i ++ 대 ++ i


이 질문에 이미 답변이 있습니다.

자바 스크립트에서 나는 i++많은 경우에 사용되는 것을 보았 으며 이전 값에 하나를 추가한다는 것을 이해합니다.

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

하지만 이렇게하면 어떻게 되나요?

++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++;

a6 인 b6이고, c6이며, d(5)이다.

결과를 사용하지 않는 경우 접두사 연산자는 접미사 연산자와 동일하게 작동합니다.


완전성을 위해 OP의 첫 번째 질문에 대한 구체적인 답변을 추가 할 것이라고 생각했습니다.

귀하의 예제 중 하나는 for 루프에서 사용되는 i ++ / ++ i를 보여줍니다.

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);
}

콘솔 창에 붙여 넣으면 둘 다 동일한 출력이 있음을 알 수 있습니다.


i++= 문에서 i의 값을 사용한 다음 1 씩 증가
++i= i의 값을 1 씩 늘린 다음 in 문에서 사용


변수 값이 사용되기 전 또는 후에 증분이 발생하는지 여부를 결정합니다.

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 = i+1;`
console.log(a); // 42
console.log(i); // 43

// Example B
var i = 42;
var b = ++i; // equivalent to `i = i+1; 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 = i+1;`
console.log(c); // 84
console.log(i); // 43

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

예 C에서,이 통지 i++될 때까지 평가되지 않습니다 곱셈과의 할당 c. 이것은 " i++작업 순서에 따라 먼저 평가되어야한다 " 오해를 상쇄합니다 . 즉, 명령문 i++ * 2증가 i * 2 하기 전에 실제로 계산 합니다 i.


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

I know, this 2011 question has long been answered.

++variable : Increment variable before using variable
variable++ : Increment variable after using variable

But I figured it could still be usefull to include an answer with a snippet to confirm how they behave in a for loop.

Just to verify in your browser that there's really no difference when using a ++i versus a i++ in the for loop declaraction.
And throwing --i versus i-- while we're at it.

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);

참고URL : https://stackoverflow.com/questions/6867876/javascript-i-vs-i

반응형