• 카테고리

    질문 & 답변
  • 세부 분야

    프론트엔드

  • 해결 여부

    미해결

선언문 질문이요!

21.08.30 09:53 작성 조회수 125

0

const와 let은 {} 블록 단위여서, 블록 밖에것은 하위 블럭안에 영향을 미치나 하위블록에서 선언된 변수는 상위 블록에서 영향을 미치지 못한다고 배웠는데, 

그래서 playanimation 함수 내 전역으로 objs 등이 선언되어서 

case 0~3 까지 영향을 미치는건 이해가 됬는데

case 2 안 if 안에서 선언된 objs,values 변수가 왜 playanimation함수내에서 선언된 전역변수랑 다른건지 모르겠어요

덮어씌우는? 그런 느낌일까요? 

(6분 30초 쯤 부터? 언급하셨어요!)

답변 1

답변을 작성해보세요.

1

{ } 내부에서 선언된 변수이므로, 그 안에서만 사용할 수 있는 지역변수라서 그렇답니다.

아래와 같은 코드가 있는 경우,
foo는 { } 밖에도 선언이 되었고 안에도 선언이 되었는데,
{ } 안에서 콘솔에 출력을 해보면 내부에 선언된 200값을 가진 foo를 사용하게 되므로
콘솔에는 200이 출력되는 것이죠!

const foo = 100;

if (true) {
const foo = 200;
console.log(foo);
}
hotsunny님의 프로필

hotsunny

질문자

2021.09.15

아아 이렇게 간단하게 보니까 한번에 이해됐어요!

매번 답변해주셔서 감사합니다 ㅠㅠ