[JavaScript] 변수 (1)
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 엔진이 필요한 환경을 제공하고 실행 결과를 실제로 관리하는 영역이다.
Author And Source
이 문제에 관하여([JavaScript] 변수 (1)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jooa7878/JavaScript-변수-1저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)