이장에선 전역변수를 선언시 반드시 사용해야할 이유를 못찾았다면 지역변수를 사용해야한다고 얘기한다. 이는 코드 전역에서 참조하는것을 허용하기떄문에 코드작성이 길어질시 코드의 가독성이나빠지고 예상하지못한곳에서의 오류가 발생하는것이 쉽기떄문이라고한다. 또한 메모리공간도 오래차지하며 가장큰 문제점으로 파일이 분리되어있다하더라도 하나의 전역 스코프를 공유하기떄문에 동일한 이름의 전역변수나 전역함수를 선언시오류가 발생한다.
var키워드를 사용하지않아야하는 이유
1.변수중복 선언가능
2.함수레벨 스코프 - 오로지 함수의 코드불록만을 지역스코프로 인정한다.(기타 코드블록내에서 선언해도 모두 전역변수로취급)
3.변수호이스팅 - 변수 선언문이 스코프(유효범위)의 선두로 끌어 올려진것처럼 동작하여 선언문 이전에 참조가 가능한다( 에러를 발생하진않지만 프로그램 흐름상 가독성이 떨어져 오류를 발생시킬 여지를 높인다.)
변수는 let,상수는 const키워드를 이용하여 선언했었던거같다. 객체를 선언시 객체내의 프로퍼티값을 변경시 객체의 참조값은 변하지않기떄문에 const를 사용해서 선언해도 문제가 없다.
의도치않는 재할당을 방지하기위해 우선 const를 사용하여 좀더 안전하게 작성해보고, 필요하다면 그떄 가서 let으로 고쳐선언하자.