티스토리 뷰
안녕하세요, 자바스크립트에서 어떻게 변수 선언을 하는지, 각각의 방법은 어떤 것이 다른지 알아보도록 하겠습니다.
1. 변수 선언 방법
자바스크립트는 변수를 선언할때 const, let, var를 사용합니다. 경우에 따라 쓰이는 곳이 다릅니다. 이를 알기 위해선 블록 스코프와 함수 스코프 에 대해서 알아야합니다.
//변수 선언 방법
var x=3;
const x=3;
let x=3;
2. 블록 스코프 vs 함수 스코프
블록 스코프는 블록 밖에서 변수에 접근할 수 없는 것을 의미하고 함수 스코프는 함수 밖에서 변수에 접근할 수 없다는 것을 의미합니다. 이때 블록의 범위는 if, while, for, function 등에서 볼 수 있는 중괄호 사이 입니다.
예를 들어서 밑의 코드와 같이 if 안에 변수를 선언하고 if문 밖에서 호출할 경우, 블록 스코프인 const와 let으로 선언한 변수는 에러를 일으키고, 함수 스코프인 var으로 선언한 변수는 에러를 발생시키지 않습니다.
//함수 스코프
if(true){
var x=3;
}
console.log(x); //3
//블록 스코프
if(true){
const y=3;
}
console.log(y); //Uncaught ReferenceError: y is not defined
보통 함수 스코프(var) 대신 블록 스코프(const,let)를 더 많이 사용합니다. 그 이유는 함수 스코프 대신 블록 스코프를 사용함으로써 호이스팅 같은 문제도 해결되고 코드 관리도 훨씬 수월하기 때문입니다.
3. const vs let
const와 let의 차이점은 초기화 후 다른 값을 할당할 수 있냐, 없냐에 있습니다. const의 경우 한 번 값을 할당하면 다른 값을 할당할 수 없습니다. 또한, const는 초기화할 때 값을 할당해야 에러가 발생하지 않습니다. 하지만, let의 경우 초기화 후 다른 값을 할당할 수 있습니다.
다음은 위의 내용을 한번에 표로 정리한 것입니다.
const | let | var | |
스코프 | 블록스코프 | 함수 스코프 | |
초기화 후 다른 값 할당 | 불가능 | 가능 | 가능 |
이상입니다. 감사합니다!
'Back_end > JavaScript' 카테고리의 다른 글
[JavaScript] 프로미스 (Promise) (0) | 2023.04.02 |
---|---|
[JavaScript] 구조분해할당 (0) | 2023.04.01 |
[JavaScript] 화살표 함수 (0) | 2023.03.31 |
[JavaScript] 백틱 ` 사용법 (템플릿 문자열, 함수 호출) (0) | 2023.03.31 |
JavaScript와 Html(script 태그, 이벤트, 콘솔) (0) | 2023.03.06 |
- Total
- Today
- Yesterday
- SQL
- 프로젝트
- AWS
- 혼공단 9기
- 해커톤
- C++
- 깃 예제
- JS
- 자바스크립트
- googleapis
- Linux
- Process
- nodejs
- 교환학생
- 리눅스
- 개발일지
- MySQL
- 공룡책
- 백엔드 개발
- Signal
- 개발
- 혼공단
- 백준
- 운영체제
- 스페인
- JavaScript
- 혼공
- 스페인 교환학생
- 혼공단 SQL
- 혼공학습단
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |