Var, let, const 및 그 사이의 모든 것

9738 단어 javascriptvariables
Var, Let 및 Const. 세 가지 모두 자바 스크립트에서 변수를 선언하는 다른 방법입니다. 그것들은 사용 방식을 변경하는 방식에서 서로 다릅니다. 설명하자면...

VAR은 2015년 6월에 ES6이 나올 때까지 오랫동안 선언의 대상이었습니다. 새로 추가된 것 중 하나는 let과 const였습니다.

첫 번째 주요 차이점은 이러한 변수의 범위에서 발생합니다.

범위 - 변수의 접근성을 결정합니다.


  • 글로벌 범위 - 전체 창에서 사용 가능
  • 함수 범위 - 해당 함수 {}에서만 사용 가능
  • 블록 범위 - 해당 {} 내에서만 사용 가능

  • Var는 전역 및 함수 범위를 갖도록 선언할 수 있습니다.



    var intro = "hello";// available globally
    
    function end2020pls (){
        var outro = "bye"; // only available here
    }
    
    console.log(intro) // works
    console.log(outro) // error outro not defined
    

    Let은 블록 범위 내에서 선언될 수 있습니다.



    function end2020pls (){
         let newintro = "say Hi";
         console.log(newintro); // say Hi
    }
    
    console.log(newintro)// error newintro not defined
    

  • 그러나 동일한 let 변수가 다른 범위에 존재할 수 있습니다.

  • let intro = "hello";// outside
    
    function end2020pls(){
         let intro = "not today";// inside
         console.log(intro); // not today
    }
    
    console.log(intro); // hello
    

    Const는 블록 범위 내에서 선언될 수 있습니다.



    function end2020pls(){
         const newoutro = "see you later, alligator";
         console.log(newoutro);// see you later, alligator 
    }
    
    console.log(newoutro);// error newoutro is not defined
    
    

    업데이트 및 재선언



    Var를 업데이트하고 다시 선언할 수 있습니다.



    var intro = "hello"; 
    var intro = "goodbye"; // works
    intro = "suh dude"; // works
    

    Let은 업데이트할 수 있지만 다시 선언할 수 없습니다.



    let intro = "hello";
    let intro = "goodbye"; // error intro has already been declared
    

    Const 업데이트하거나 다시 선언할 수 없습니다.



    const intro = "hello";
    intro = "yo"; // error Assignment to constant variable
    const intro = "yo"; // error intro has already been declared
    

    Const로 선언된 개체는 업데이트하거나 속성을 다시 선언할 수 없습니다.



    const person = { 
         name: "bob";,
         age: "99";
    }
    
    person.age = 67; //works
    

    호이스팅 - 변수 및 함수 선언이 코드 실행의 맨 위로 이동되는 자바스크립트 메커니즘



    Var가 호이스트되지만 정의되지 않음




    그래서 이거


    console.log(intro);
    var intro = "hello";
    



    실제로


    var intro;
    console.log(intro); // intro is undefined
    intro = "hello";
    

    Let은 호이스팅되지만 초기화되지는 않습니다.



    function end2020pls(){
         console.log(x)//error ReferenceError x is not defined
         let x = 2;
    }
    

    Const는 호이스팅되지만 초기화되지는 않습니다.



    function end2020pls(){
         console.log(x) // error ReferenceError x is not defined
         const x = 2;
    }
    

    지금은 여기까지입니다. 누락된 항목이 있으면 언제든지 문의해 주세요. ;)

    좋은 웹페이지 즐겨찾기