JavaScript

1. 변수란 무엇인가?

sungtt 2021. 12. 13. 04:09

변수(variable)은 하나의 값을 저장하기 위해 확보한 메모리 공간 자체 또는

그 메모리 공간을 식별하기 위해 붙인 이름을 말한다. 

 

자바스크립트를 해석하고 실행하는 엔진이

코드를 계산(evaluation)하려면 각 기호와 문맥의 의미를 해석(Parsing)할 수 있어야 한다.

     a + b = c
// a,b,+ (리터럴과 연산자), a + b (표현식)

엔진이 a + b 라는 식의 의미를 해석하면 +라는 연산자의 연산을 수행하기위해

+ 연산자의 좌변과 우변의 숫자 값(피연산자)를 컴퓨터의 메모리를 통해 기억한다.

그리고 c라는 결과값 또 한 메모리에 저장되어있다.

하지만 자바스크립트는 개발자가 직접적으로 메모리 제어를 허용하지않는다.

메모리 주소를 통해 값에 직접 접근하는것은 치명적 오류를 발생시킬 가능성이 높은 위험한 일이기때문이다.

 

거기에 동일한 컴퓨터에서 동일한 코드를 실행할 때 마다 값은 메모리 주소에 저장이 된다.

따라서 메모리 주소를 통해 값에 접근하는 방법도 올바른 방법은 아니다.

 

이를 위해 기억하고싶은 값을 메모리에 저장하고, 저장된 값을 읽어 들여

재사용하기위해 변수라는 메커니즘이 제공된다. 

변수란 값이 저장된 메모리 주소를 가리키는 이름인것이다.

var result = 5 + 5;
console.log(result) // 10

5 + 5 의 결과값은 10이다. 이 값이 저장된 메모리에 접근하기위해 우리가 정해준

메모리 주소에 붙여준 변수명(result)를 통해 10이 저장되어있는 메모리에 접근할 수 있다.

(result(undefined) -> 10(연산 후 결과값) -> 0x00000001(메모리에 할당되어 주소생성) -> result(결과값이 담긴 메모리 주소를 result라고 칭함)-> 10)

 

위 예제에서 result는 변수명, 10은 변수값,

변수에 값을 저장하는것을 할당(assignment)

변수에 저장된 값을 읽어 들이는 것은 참조(reference)라 한다.

 

변수명은 변수값의 의미를 파악하기 용이하도록 네이밍하는것이 좋다.

이 의도를 정확히 할수록 코드의 가독성, 협업, 품질 향상에 도움을 준다.

코드는 컴퓨터에게 내리는 명령이지만, 사람이 읽는 문서이기도 때문이다.

 

변수 이름을 식별자(identifier)라고도 한다. 

* 식별자 : 어떤 값을 구별해서 식별할 수 있는 고유한 이름을 말함

 

하지만 식별자라는 용어는 변수 이름에만 국한되지 않는다.

변수, 함수, 클래스 등의 이름은 모두 식별자다.

 

변수를 사용하기 위해서는 반드시 변수 선언을 해줘야한다.

var = a
let = b
const = c

이때 쓰이는 키워드는 var , let , const 가 있다.

ES5까지는 var가 유일한 키워드였으나, ES6부터 var의 여러 단점(ex)함수 레벨 스코프)를 개선한

let , const (블록 레벨 스코프)가 등장하였다.