✔️ var - let - const 이제는 알겠답

몽슈뜨·2022년 11월 20일
0

TIL

목록 보기
13/70

  • var

    유효 범위 : 함수 스코프
    값 재할당 : 가능
    재선언 : 가능

    var name = "MinSeop";
    console.log(name);
    
    var name = "Duck";
    console.log(name);
    
    //output: MinSeop
    //output: Duck

    var를 사용하면 변수 선언의 경우, 할당되는 값이 유동적으로 변경될 수 있는 단점을 가지고있다.
    ex ) 코드가 아주 길게 되었을때 선언한 변수를 까먹고 다시 선언했다면 var 는 재선언,재할당이 가능해서 문제를 일으킬 수 있다.

    2015년 ES6 업데이트 이후로 추가된 변수 선언 방식인 letconstvar와 같은 선언 방식을 막고있다.

  • let

    유효 범위 : 블록 스코프 / 함수 스코프
    값 재할당 : 가능
    재선언 : 불가능

    let name = "MinSeop";
    console.log(name); 
    
    let name = "Duck";
    console.log(name);
    //output: Identifier 'name' has already been declared

    let을 사용했을 경우에는 name이 이미 선언되었다는 에러 메시지가 나오는걸 볼 수 있다.

    위에 코드에는 let만 케이스로 집어넣었지만 const도 마찬가지로 변수 재할당이 안된다는 특징을 가지고있다.

    그럼 letconst는 어떤 차이가 있을까?
    letconst의 차이점은 변수의 immutable (불변)여부이다.

    let은 변수에 재할당이 가능하지만,
    const는 변수 재선언, 재할당 모두 불가능하다.

  • const

    유효 범위 : 블록 스코프 / 함수 스코프
    값 재할당 : 불가능
    재선언 : 불가능

    /////// let
    
    let testCase = 'let'
    // output: let
    
    let testCase = 'let2'
    // output: Uncaught SyntaxError: Identifier 'testCase' has already been declared
    
    testCase = 'let3'
    // output: let3
    /////// const
    const testCase = 'const' 
    // output: const
    
    const testCase = 'const2'
    // output: Uncaught SyntaxError: Identifier 'testCase' has already been declared
    
    testCase = 'const3'
    // output: Uncaught TypeError:Assignment to constant variable.

  • 변수의 유효범위 ( 스코프 공부하러 가기 )

    varfunction scope를 가지게되고
    let, constblock scope를 가지게된다.

profile
개발자되면 맥북사줄께

0개의 댓글