[JavaScript] 변수 (1)

Sanghyeok·2021년 5월 27일
0

JavaScript

목록 보기
3/6
post-thumbnail

21.05.27


책 모던 자바스크립트 Deep Dive를 정리했습니다.


변수는 하나의 값을 저장하기 위해 확보한 메모리 공간 자체 또는 그 메모리 공간을 식별하기 위해 붙인 이름, 값의 위치를 가리키는 상징적인 이름이다.

  • 변수는 프로그래밍 언어에서 데이터를 관리하기 위한 핵심 개념

  • 좋은 이름, 가독성이 높은 변수 이름은 협업과 품질 향상에 도움을 준다.


CPU의 연산 결과를 재사용하고 싶다면 ?

10 + 20

위의 연산 결과인 30을 사용하고 싶다면 메모리 주소를 통해 직접 접근하는 방법 밖에 없다.

하지만 이는 굉장히 위험한 방법이다

  • 치명적인 오류 야기 가능, 따라서 JavaScript는 개발자의 직접적인 메모리 제어 허용 X

식별자

식별자는 어떤 값을 구별해서 식별할 수 있는 고유한 이름, 값이 아니라 메모리 주소를 기억하고 있다.

  • 변수 이름에 국한되지 않고 클래스, 함수 등의 이름은 모두 식별자다.

  • 식별자는 네이밍 규칙을 준수해야 한다. (후술)


변수 선언

메모리 공간을 확보하고 변수 이름과 확보한 메모리 공간의 주소를 연결해서 값을 저장할 수 있게 준비하는 것.

  • 변수를 사용하기 위해 반드시 선언이 필요하다.
    - var, const, let 키워드를 사용한다 (ES6로 const, let 도입)
  • 후술할 내용이지만 var 키워드는 여러 단점이 있다.
    가장 대표적인 것이 block-level-scope를 지원하지 않고 function-level-scope를 지원한다는 것이다.
    이로 인해 의도치 않게 전역 변수가 선언되어 부작용이 발생하기도 한다.

 var score 
 

위 변수 선언문은 이름을 등록하고 값을 저장할 메모리 공간을 확보한다.
Javascript는 엔진에 의해 undefined라는 값이 암묵적으로 할당되어 초기화되는
독특한 특징이 있다. 이로 인해 쓰레기 값으로 인한 메모리 누수로부터 안전하다.

  • 변수 선언을 선언 단계, 초기화 단계의 2단계로 나누어 수행하는데 이는 나중에 설명할 호이스팅(hoisting)과도 연관이 있으니 알아두도록 하자

  • 선언하지 않은 식별자에 접근하면 Reference Error(참조 에러)가 발생하니 주의하자.

Execution Context (실행 컨텍스트)
모든 식별자가 등록되는 곳, JS 엔진이 필요한 환경을 제공하고 실행 결과를 실제로 관리하는 영역이다.

0개의 댓글

관련 채용 정보