Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

JavaScript 변수는 루프 외부 또는 내부를 선언합니까?

<시간/>

ECMA-/Javascript 언어는 withvar로 선언된 모든 변수를 함수의 맨 위로 호이스트합니다. 이 언어에는 기능 범위가 있고 다른 많은 C 유사 언어처럼 블록 범위가 없기 때문입니다.

function() {
   for(var a = 0; a < 7; a ++) {
      var b = 100;
   }
}

와 동일합니다

function() {
   var b;
   for(var a = 0; a < 7; a ++) {
      b = 100;
   }
}

그러나 let의 경우에는 그렇지 않습니다. let 은 어휘 범위를 지정합니다. 따라서 루프 외부에서 동일한 변수가 필요하지 않은 경우(또는 각 반복이 이전 반복에서 해당 변수에 대해 수행된 작업에 의존하는 경우) 변수가 사용되는 범위를 선언하는 것이 좋습니다.