상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
궁금한 상식 보기
영양부족이 유아에게 미치는 영향은?
AI로봇: 7가지 이유로 물류 산업의 효율을 극대화한다!
AI로봇: 9가지 이유로 고객 지원 시스템을 최적화한다!
고도비만의 진실: 7가지 오해
AI와 VR/AR의 융합 가능성은?
AI의 기계 번역 기술의 발전 가능성은?
다양한 창업대출 상품 비교는 어떻게 하나요?
"다이어트약: 10일 만에 몸무게 감소의 비결 공개!"
"다이어트약: 성분 분석으로 알아보는 진짜 효과"
"다이어트약: 믿을 수 있는 효과를 위한 7가지 체크리스트"
"다이어트약: 건강한 다이어트를 위한 5가지 필수 조건"
중장년일자리의 미래: 10가지 이유로 지금 바로 도전하라!
Previous
Next
수정하기 - var, let, const의 차이점은 무엇인가요?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
JavaScript에서 변수 선언을 위해 사용하는 `var`, `let`, `const`는 각각의 특성과 사용 용도에 따라 다릅니다. 이들 사이의 차이점을 이해하는 것은 코드의 가독성과 유지보수성을 높이는 데 중요한 요소입니다. 아래에서는 각 키워드의 특징과 차이점을 자세히 설명하겠습니다. 1. `var`- 스코프(Scope) : `var`로 선언된 변수는 <a href='https://sangseek.com/sangseeks/함수 스코프/ko'>함수 스코프</a>(function scope)를 가집니다. 즉, 변수가 선언된 함수 내에서만 유효하며, 함수 외부에서는 접근할 수 없습니다. 만약 함수 외부에서 선언된다면, <a href='https://sangseek.com/sangseeks/전역 스코프/ko'>전역 스코프</a>(global scope)를 가지게 됩니다. - 호이스팅(Hoisting) : `var`로 선언된 변수는 호이스팅이 발생합니다. 이는 변수가 선언되기 전에 사용할 수 있다는 의미입니다. 그러나 실제 값은 변수 선언문이 실행될 때까지 `<a href='https://sangseek.com/sangseeks/undefined/ko'>undefined</a>`로 남아 있습니다.- 재선언 : 같은 스코프 내에서 여러 번 선언할 수 있습니다. 이는 코드의 예측 가능성을 떨어뜨릴 수 있습니다.```javascriptconsole.log(x); // undefinedvar x = 5;console.log(x); // 5var y = 10;var y = 20; // 재선언 가능console.log(y); // 20``` 2. `let`- 스코프 : `let`으로 선언된 변수는 <a href='https://sangseek.com/sangseeks/블록 스코프/ko'>블록 스코프</a>(block scope)를 가집니다. 즉, `{}`로 감싸진 코드 블록 내에서만 유효합니다. 이는 `if`, `for`, `while` 등의 블록에서도 적용됩니다.- 호이스팅 : `let`도 호이스팅이 발생하지만, `Temporal Dead Zone (TDZ)`이라는 개념이 적용됩니다. 이는 변수가 선언되기 전에는 접근할 수 없다는 의미입니다. 따라서 선언 전에 접근하려고 하면 `ReferenceError`가 발생합니다.- 재선언 : 같은 스코프 내에서 재선언할 수 없습니다. 이는 코드의 예측 가능성을 높이는 데 기여합니다.```javascriptconsole.log(a); // ReferenceErrorlet a = 5;console.log(a); // 5let b = 10;// let b = 20; // SyntaxError: Identifier 'b' has already been declared``` 3. `const`- 스코프 : `const`도 `let`과 마찬가지로 블록 스코프를 가집니다. `{}`로 감싸진 코드 블록 내에서만 유효합니다.- 호이스팅 : `const`도 호이스팅이 발생하며, TDZ가 적용됩니다. 따라서 선언되기 전에 접근하면 `ReferenceError`가 발생합니다.- 재선언 및 재할당 : `const`로 선언된 변수는 재선언할 수 없으며, 재할당도 불가능합니다. 즉, 한 번 값을 할당하면 그 값을 변경할 수 없습니다. 그러나 객체나 배열과 같은 <a href='https://sangseek.com/sangseeks/참조/ko'>참조</a> 타입의 경우, 내부 속성이나 요소는 변경할 수 있습니다.```javascriptconst c = 5;// c = 10; // <a href='https://sangseek.com/sangseeks/TypeError/ko'>TypeError</a>: Assignment to constant variable.const obj = { key: 'value' };obj.key = 'newValue'; // 가능console.log(obj.key); // 'newValue'// const obj = {}; // SyntaxError: Identifier 'obj' has already been declared``` 요약- `var` : 함수 스코프, 호이스팅, 재선언 가능.- `let` : 블록 스코프, 호이스팅(하지만 TDZ 적용), 재선언 불가.- `const` : 블록 스코프, 호이스팅(하지만 TDZ 적용), 재선언 및 재할당 불가. 결론일반적으로, `let`과 `const`를 사용하는 것이 권장됩니다. `let`은 값이 변경될 가능성이 있는 변수에 사용하고, `const`는 값이 변경되지 않을 것임을 보장하는 변수에 사용합니다. `var`는 오래된 코드에서 주로 사용되며, 새로운 코드에서는 피하는 것이 좋습니다. 이러한 규칙을 따르면 코드의 가독성과 안정성을 높일 수 있습니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기