변수 선언 시 주의 할 점(스코프)

1821 단어 scopescope

변수 선언시 주의 할점

  • (1) Window 객체(browser only)

    • var로 선언된 전역 변수 및 전역 함수는 window 객체에 속합니다.
      //var로 선언된 전역변수
      var myName = '김코딩';
      console.log(window.myName); // 김코딩
      //전역 함수
      function foo() {
        console.log('bar')
      }
      
      console.log(foo === window.foo);// true  
  • (2) 전역 변수는 최소화 해야 합니다.

    • 전역변수는 어디서든 접근이 가능한 변수 입니다.
    • 편리하지만, side effect가 발생할 여지가 있습니다.
    • 협업에서 많은 사람이 전역 변수를 만드는 순간혼란을 야기 할 수 있습니다.
  • (3) let const 키워드를 주로 사용해서 변수를 선언해야 합니다.

    • var는 블록스코프를 무시하고, 재선언을 해도 에러를 발생시키지 않습니다.
    • 전역 변수를 var로 선언하는 것은 브라우저의 내장 기능을 사용하지 못하게 만들 수도 있습니다.
  • (4) 선언 키워드 없이 변수를 할당하지 마세요.

    • 선언한 적이 없지만 값을 할당하면, 마치 var로 선언된 전역 변수처럼 작동합니다.
    //var선언된것 window객체에 들어가게 됩니다.
    function showAge() {
      age = 90;
      console.log(age);// 90
    }
    showAge();
    console.log(age);// 90
    console.log(window.age);//90
  • (5) 실수를 방지하기 위해 Strict Mode를 사용할 수 있습니다.

    • 'use strict';라는 특별한 지시자를 사용해 엄격 모드(strict mode)를 활성화 했을 때, 앞서 언급한 것처럼 "선언 없는 변수 할당"의 경우도 Strict Mode는 에러로 판단합니다.

참고 : 코드스테이츠 /mdn

좋은 웹페이지 즐겨찾기