상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
궁금한 상식 보기
오피스텔의 투자 리스크는 어떤 것이 있나요?
오피스텔의 소음 문제를 예방하기 위한 방법은 무엇인가요?
KT의 해외 진출 현황은 어떻게 되나요?
KT의 서비스 이용 통계는 어떻게 수집되나요?
SK텔레콤의 설립 연도는 언제인가요?
SK텔레콤의 모바일 기기 판매 전략은 무엇인가요?
에릭슨 통신장비의 유지보수는 어떻게 이루어지나요?
LG유플러스의 유료 콘텐츠는 어떤 것이 있나요?
IP 주소의 IP 주소 변환의 필요성은 무엇인가요?
와이파이 신호가 약한 경우의 해결 방법은 무엇인가요?
브라우저의 세션 스토리지와 로컬 스토리지 최적화 방법은 무엇인가요?
웹사이트의 최적화를 위한 API 호출 최적화란 무엇인가요?
Previous
Next
수정하기 - 자바스크립트에서 변수 선언 방법은 무엇인가요?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
<a href='https://sangseek.com/sangseeks/자바/ko'>자바</a>스크립트에서 변수 선언 방법은 크게 세 가지로 나눌 수 있습니다: `var`, `let`, 그리고 `const`. 이 세 가지 방법은 각각의 특징과 용도에 따라 다르게 사용됩니다. 아래에서 각 방법에 대해 자세히 설명하겠습니다. 1. `var` `var`는 자바스크립트에서 가장 오래된 변수 선언 방법입니다. ES5(ECMAScript 5) 이전부터 사용되어 왔으며, 다음과 같은 특징이 있습니다. - 스코프(Scope) : `var`로 선언된 변수는 함수 스코프(Function Scope)를 가집니다. 즉, 변수가 선언된 함수 내에서만 유효하며, 함수 외부에서는 접근할 수 없습니다. 만약 함수 외부에서 `var`로 변수를 선언하면, 해당 변수는 <a href='https://sangseek.com/sangseeks/전역 스코프/ko'>전역 스코프</a>(Global Scope)를 가지게 됩니다. - <a href='https://sangseek.com/sangseeks/호이스팅/ko'>호이스팅</a>(Hoisting) : `var`로 선언된 변수는 호이스팅이 발생합니다. 이는 변수가 선언된 위치와 상관없이 해당 변수가 함수의 시작 부분으로 끌어올려진 것처럼 동작한다는 의미입니다. 따라서 변수 선언 이전에 해당 변수를 참조할 수 있지만, 초기화는 선언 이후에 이루어지므로 `undefined` 값을 반환합니다. ```javascript console.log(x); // undefined var x = 5; console.log(x); // 5 ``` 2. `let` `let`은 ES6(ECMAScript 2015)에서 도입된 변수 선언 방법으로, `var`의 단점을 보완하기 위해 만들어졌습니다. `let`의 주요 특징은 다음과 같습니다. - <a href='https://sangseek.com/sangseeks/블록 스코프/ko'>블록 스코프</a>(Block Scope) : `let`으로 선언된 변수는 블록 스코프를 가집니다. 즉, 중괄호 `{}`로 감싸진 코드 블록 내에서만 유효합니다. 이는 `if`, `for`, `<a href='https://sangseek.com/sangseeks/while/ko'>while</a>` 등의 블록에서도 적용됩니다. ```javascript if (true) { let y = 10; console.log(y); // 10 } console.log(y); // ReferenceError: y is not defined ``` - 호이스팅 : `let`으로 선언된 변수도 호이스팅이 발생하지만, 초기화 이전에 해당 변수를 참조하면 `ReferenceError`가 발생합니다. 이는 변수가 선언되기 전에는 사용할 수 없다는 의미입니다. ```javascript console.log(z); // ReferenceError: Cannot access 'z' before initialization let z = 15; ``` 3. `const` `const` 역시 ES6에서 도입된 변수 선언 방법으로, 상수를 선언할 때 사용됩니다. `const`의 주요 특징은 다음과 같습니다. - 블록 스코프 : `const`로 선언된 변수도 블록 스코프를 가집니다. 이는 `let`과 동일합니다. ```javascript if (true) { const a = 20; console.log(a); // 20 } console.log(a); // ReferenceError: a is not defined ``` - 초기화 필수 : `const`로 선언된 변수는 반드시 선언과 동시에 초기화해야 합니다. 초기화하지 않으면 `SyntaxError`가 발생합니다. ```javascript const b; // SyntaxError: Missing initializer in const declaration ``` - 재할당 불가 : `const`로 선언된 변수는 재할당이 불가능합니다. 즉, 한 번 값을 할당하면 다른 값을 다시 할당할 수 없습니다. 그러나 객체나 배<a href='https://sangseek.com/sangseeks/열의/ko'>열의</a> 경우, 내부의 속성이나 요소는 변경할 수 있습니다. ```javascript const c = 30; c = 40; // <a href='https://sangseek.com/sangseeks/TypeError/ko'>TypeError</a>: Assignment to constant variable. const obj = { name: 'Alice' }; obj.name = 'Bob'; // 가능 console.log(obj.name); // 'Bob' ``` 결론 자바스크립트에서 변수 선언 방법은 `var`, `let`, `const`로 나뉘며, 각각의 사용 목적과 특징이 다릅니다. 일반적으로는 `let`과 `const`를 사용하는 것이 권장되며, `var`는 구식 코드나 특정한 상황에서만 사용하는 것이 좋습니다. `let`은 변수가 블록 스코프를 가질 때, `const`는 상수를 선언할 때 사용합니다. 이러한 규칙을 이해하고 적절히 활용하면, 더 안전하고 유지보수하기 쉬운 코드를 작성할 수 있습니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기