Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 서버 컴포넌트
- react
- 항해99추천
- JavaScript
- 자바스크립트
- 날씨 api
- 항해99후기
- 항해99솔직후기
- 프로그래머스
- greedy
- jQuery
- 배열 메소드
- 숫자를 별점으로
- 클라이언트 컴포넌트
- 카테고리필터
- 항해99
- 로딩 후 실행
- 탐욕알고리즘
- 배열 중복 제거
- 중복카테고리
- db수정
- 부트캠프항해
- 백준
- server component
- 실전프로젝트
- 동전 0
- 알고리즘
- NextJS v13
- 중복선택
- 그리디
Archives
- Today
- Total
공부 및 일상기록
[Javascript] var, let, const에 대해 설명 본문
변수 선언방식
var
var는 중복 선언과 재할당이 가능하고 중복 선언한 경우 마지막에 할당된 값이 변수에 저장된다.
let
let은 중복 선언이 불가능하고 재할당은 가능하다.
const
const는 중복선언과 재할당 모두 불가능 하다.
스코프
var
var는 함수레벨 스코프를 갖는다. 따라서 함수 내에서 선언된 변수는 함수 내에서만 유효하며 함수 외부에서는 참조할 수 없다. 함수 외부에서 선언한 변수는 모두 전역변수로 취급된다.
let, const
let과 const는 블록레벨 스코프를 갖는다. 따라서 if문, for문 등등 모든 코드 블록 내부에서 선언된 변수는 코드 블록 내에서만 유효하며 코드블록 외부에서는 참조할 수 없다. 코드 블록 내부에서 선언한 변수는 지역변수로 취급된다.
호이스팅
var, 함수선언문
var는 선언과 동시에 초기화 되며 호이스팅이 되면 초기화 되어있기 때문에 선언 전 사용시 undefined가 된다.
함수선언문은 함수 자체가 모두 호이스팅되어 선언 전에 사용이 가능하다.
let, const, 함수표현식
let과 const, 함수표현식은 선언된 상태로 호이스팅되어 초기화가 이뤄지지 않아 선언 전 사용시 참조에러가 발생한다.
따라서 해당 선언을 만나야만 초기화 및 할당이 되어, 선언 후 사용이 가능하다.
위처럼 변수의 선언과 초기화 사이에 일시적으로 변수값을 참조할 수 없는 구간을 Temporal Dead Zone이라고 한다.
'개발 > Javascript' 카테고리의 다른 글
[Javascript] 이벤트 버블링과 캡쳐링, 이벤트 위임 (0) | 2023.01.06 |
---|---|
[Javascript] 호이스팅이란? (0) | 2023.01.05 |
[Javascript] 동기와 비동기란 무엇인가? (0) | 2023.01.05 |
[Javascript] promise와 callback비교 (0) | 2023.01.05 |
[Javascript] async await란 무엇인가? (0) | 2023.01.05 |