이것이 제가 일반적으로 루프를 위해 쓰는 것입니다.
for (var i = 0; i <20; i ++) {....}그러나 나는 어떤 사람들이 이것을 쓴다고 생각합니다
for (var i = 0; i <20; ++ i) {..}이것이 For 루프에 어떤 영향을 미칩니 까?
1.
그러나 과제에 사용되면 차이가 있습니다 ...
var a = 1; var b = a ++; var c = 1; var d = ++ c; console.log (b, d); // 1, 2
A ++는 먼저 적용한 다음 직접 추가하는 것입니다.
++ a는 먼저 추가 한 다음 a를 적용하는 것입니다.
2. 아마도 C/C ++ 시대가 가져온 습관 일 것입니다. Legend는 ++ i가 i ++보다 빠르지 만 실제로이 두 가지의 성능은 JS에서 비슷하다는 것을 가지고 있습니다.
특정 세부 사항은 사양이 다음과 같이 작성됩니다.
앞의 상황을 위해 -
uneryexpression : ++ 단지 표현력은 unaryexpression을 평가 한 결과입니다. OldValue be tonb ifabrup (status). NewValue를 다시 시작하십시오.
거친 번역 :
1. Expr이 현재 표현식의 결과와 동일하게하십시오 (++ 이후의 부분).
2. OldValue가 Expr이 숫자로 변환 한 결과와 동일하게하십시오.
3. " +"연산자와 동일한 규칙을 사용하여 NewValue = OldValue + 1을하자
4. NewValue를 Expr에 할당하십시오
5. 전체 작업이 NewValue를 반환합니다
그 뒤에있는 상황을 위해 -
Postfixexpression : lefthandsideexpression ++
1. LHS는 lefthandsideexpression을 평가 한 결과입니다.
2. OldValue가 톤버 (GetValue) (LHS).
3. returnifabrup (OldValue).
4. NewValue는 + 연산자와 동일한 규칙을 사용하여 OldValue에 값 1을 추가 한 결과가 되십시오 (12.7.5 참조).
5. 레트 상태는 putValue (LHS, NewValue)입니다.
6. returnifabrup (상태).
7. OldValue를 반환하십시오.
거친 번역 -
1. LHS가 현재 표현식의 결과와 동일하게하십시오 (++의 이전 부분)
2. OldValue가 LHS와 동일하게 숫자 결과를 변환하십시오.
3. " +"연산자와 동일한 규칙을 사용하여 NewValue = OldValue + 1을하자
4. LHS에 NewValue를 할당하십시오
5. 전체 작업이 OldValue를 반환합니다
둘 사이의 차이는 마지막 단계 일 뿐이라는 것을 알 수 있습니다. 하나를 추가 한 후 전체 작업이 반환되는지 여부.
for 진술서 :
for (var i = 0; i <n; i ++)
마지막 열은 단지 자체 흡수 이며이 값을 다른 사람에게 할당하지 않으므로이 관점에서 ++ 기호를 앞뒤에 배치하는 것과 동일합니다.
3. 사실, 큰 차이는 없습니다. 그러나 약간의 효율성을 추구하고 싶다면 ++는 실제로 더 효율적일 것입니다.
실제로 C ++의 STD 표준 라이브러리에서 나온 것입니다. 내가 STD 컨테이너의 반복자 인 경우 숫자가 아니며 I ++는 추가 할당 작업을 생성하므로 ++는 성능이 향상됩니다. 따라서 C ++에 익숙한 사람들은 ++ i를 사용하여 숫자 값이 아닐 때 돈을 절약하는 것을 좋아합니다.
위는 편집자가 귀하에게 소개 한 루프에 대한 JS의 I ++와 ++ I의 차이입니다. 나는 그것이 당신에게 도움이되기를 바랍니다. 궁금한 점이 있으면 메시지를 남겨 주시면 편집자가 제 시간에 답장을 드리겠습니다. Wulin.com 웹 사이트를 지원해 주셔서 대단히 감사합니다!