var, let, const 비교분석

song·2023년 9월 29일
0

js 정보

목록 보기
1/30

Hoisting

변수의 선언을 변수 범위 맨위로 끌어오는 현상
변수를 만나면 선언부분을 강제로 맨위로 끌어올림
그래서 함수 선언식을 아래에 작성하고 위에서 함수를 호출해도 실행된다.

// ex
showAge();
function showAge(){
    console.log(26);
}


변수의 생성과정

  1. 선언 단계
  2. 초기화 단계
  3. 할당 단계


var

  1. 선언 및 초기화 단계
  2. 할당 단계

    초기화: undefined를 할당 해주는 단계
// ex)
var a; // 선언만 했지만 hoisting으로 a는 undefined값으로 초기화됨


let

  1. 선언단계
  2. 초기화 단계
  3. 할당 단계
// let, const도 Hoisting 일어난다.
// ex)
let age = 30;
function showAge( ){
    // 가까운 곳에서 부터 age를 찾기 때문에 전역에 선언된 age가 아닌 스코프 안에 age를 가리킴
    console.log(age);	// console.log(age)가 출력되지 않고 age를 먼저 초기화하라고 에러뜸.
    let age = 20;	// hoisting이 일어남. hoisting이 일어나지 않았다면 console.log(age)에서 전역변수 age값인 30이 출력되었을 것이다.
}
showAge( );


const

  1. 선언 + 초기화 + 할당


범위

var
함수 스코프

let, const
블록 스코프(함수, if문, for문, while문, try/catch문 등등)

profile
인간은 적응의 동물

0개의 댓글

관련 채용 정보