[TIL-js] Variable, Constants

sgr2134·2021년 3월 17일
0

Javascript

목록 보기
2/7
post-thumbnail

프로그래밍의 핵심은 입력·연산·출력이라고 할 수 있다. 따라서 CPU에 최적화된 연산을 만드는 것이 중요할 것이다. 이런 연산의 핵심 요소는 변수라고 할 수 있겠다.

따라서 이번 포스팅에서는 변수상수 그리고 변수타입에 대해 알아보고자 한다.

variable

variable 변수, 즉 변경될 수 있는 값을 의미하며 JS에서는 주로 let을 통해서 변수를 선언한다. 변수의 사용 범위는 block scope(지역)와 global scope(전역) 크게 두가지로 나누어 진다.

block scope

지역변수는 { }를 통해서 선언되며, {}밖의 변수에는 영향을 미치지 않는다.

{let name="garam"
1) console.log(name);}
2) console.log(name); 

이때 1)은 지역변수의 출력될 값으로 garam이 보이지만, 2)는 {}안의 변수 값을 볼 수 없다.

global scope

지역변수와 반대로 문서내 모든 곳에서 접근 가능한 변수이다. 처음 실행 및 끝나는 시점까지 적용되기 때문에 메모리 사용량이 상당히 높다. 그러므로 꼭 필요한 경우에만 사용하는 것이 좋다 (예: class함수, if, for, look...)

let name="garam"
{ 1) console.log(name);}
2) console.log(name);

이 때 1), 2) 모두 동일하게 전역 변수의 영향으로 결과값이 garam으로 찍힌다.

var의 행방?

ES6 이전까지는 변수를 선언할 때, "var" variable의 줄임말을 써서 사용했다. 그런데 이 var는 사실 미쳤다. 일반적으로 변수를 먼저 선언하고 값을 할당해야 하는 기본 정규식에서 var는 값을 할당하지 않아도 출력되기 때문!

이는 var hoisting이라는 성질 때문인데, hoisting은 끌어올리다라는 의미를 가지고 있다. 이를 바탕으로 유추해볼때 var에는 어디에 쓰던건 무조건 상단으로 끌어올리는 성질 때문에 자동으로 전역으로 사용되는 듯 하다. 이는 곧 block scope(지역)를 철저히 무시한다는 말과 같다. 이렇게 된다면 규모있는 프로젝트에서 오류 가능성을 높이는 결과를 낳는다.

따라서 우리는 var를 쓰는걸 지양해야하고 let을 쓰는 연습을 해야 할 것이다. (미친언어인 익스플로러에서는 아직도 var를 사용하지만 엘리님이 말하길 그냥 무시하고 나중에 BABEL을 이용해서 익스플로러에 호환할 수 있도록 하는 방법을 추천하셨다. )

Constants

일정하다는 의미를 가지고 있는 constant는 말 그대로 변하지 않는 값 상수를 의미한다. 변수와는 달리 값을 선언한 뒤에는 절대값을 변경할 수 없다.
따라서 영어로는 Immutable data type(변수는 mutable type)이라고도 하며 웬만하면 값이 변하지 않는 것들에 사용한다.

constants의 장점

1. Security

코드의 값이 변경되지 않기 때문에 변수에 비해 상대적으로 보안이 잘 된다.

2. Thread Safety

동시에 값이 사용되는걸 막아준다.

3. Reduce human mistakes

바뀌지 않는 값을 사용함으로 다른 사용자와 협업에도 유리하게 사용될 수 있다.

so, 웬만해서는 const를 사용하자!

▶ 오늘 배운 내용

  • variable은 변수 const는 상수
  • var는 hoisting 성질 때문에 쓰는걸 지양하자
  • 웬만하면 const를 사용하자!

▶ 더 알아볼 내용

  • 다양한 변수 타입
  • 그럼에도 불구하고 var를 쓰던데 어떨 때 쓰는 것인지
profile
못하는것도 지겨워서 공부한 걸 기록합니다.. 나아지겠죠 🙏

1개의 댓글

comment-user-thumbnail
2021년 3월 19일

메모리 사용량에 과부하가 걸리지 않게 적재적소에 global scope쓰기! 꼭 기억할게요!!😉

답글 달기