자바 스크립트 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++;
a
6 인 b
6이고, c
6이며, 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
'programing tip' 카테고리의 다른 글
Lisp에서 '(또는 따옴표)를 언제 사용합니까? (0) | 2020.08.11 |
---|---|
풀하기 전에 로컬과 github의 차이점을 확인하는 방법 (0) | 2020.08.11 |
PHP에서 추상 클래스는 무엇입니까? (0) | 2020.08.11 |
NSLayoutConstraint가 ViewController를 충돌시킵니다. (0) | 2020.08.11 |
html에서 클릭 한 요소 주변의 점선을 제거하는 방법 (0) | 2020.08.11 |