자바스크립트 - 변수

정진우·2022년 5월 2일
0

JavaScript

목록 보기
1/3
post-thumbnail

변수

  • 애플리케이션에서 값에 상징적인 이름으로 변수를 사용함
  • 변수명은 식별자라고 불리며 특정 규칙을 따름

    변수명 규칙

    • 변수명은 문자, 밑줄 (_) 혹은 달러 기호 ($)로 시작해야 함
    • 대소문자를 구분함
    • ISO 8859-1 혹은 Unicode 문자(가령 å 나 ü)도 식별자에 사용할 수 있음

적절한 변수명의 예시

  • Number_hits, temp99, $credit, _name 등




변수 선언 방법 3가지

var

  • 변수를 선언. 추가로 동시에 값을 초기화할 수 있음

let

  • 블록 스코프 지역 변수를 선언. 추가로 동시에 값을 초기화할 수 있음

const

  • 블록 스코프 읽기 전용 상수를 선언. 추가로 동시에 값을 초기화할 수 있음



변수 할당

  • 지정된 초기 값 없이 var 혹은 let문을 사용해서 선언된 변수는 undefined 값을 갖는다.
  • 선언되지 않은 변수에 접근을 시도하는 경우 ReferenceError 예외가 발생
var a;
console.log(a); // undefined

console.log(b); // Uncaught ReferenceError: b is not defined

let x;
console.log(x); // undefined

console.log(y); // Uncaught ReferenceError: y is not defined
let y;

let myNum; // 선언 (declare)
myNum = 100; // 할당,대입 (assign)



변수는 왜 필요한가?

1+2

자바스크립트 엔진이 위와 같은 자바스크립트 코드를 계산하려면 무엇이 필요할까?
1, 2, +라는 기호의 의미를 알고 있어야 하고, 1+2라는 식의 의미도 해석할 수 있어야 한다.


자바스크립트 엔진이 1+2라는 식의 의미를 해석하면 + 연산을 수행하기 위해
먼저 + 연산자의 좌변과 우변의 숫자 값을 기억한다.


컴퓨터는 CPU를 사용해 연산하고, 메모리를 사용해 데이터를 기억한다.

1과 2는 메모리 상의 임의의 위치에 저장되고 CPU는 이 값을 읽어들여 연산을 수행한다.
연산 결과로 생성된 3도 메모리 상의 임의의 위치에 저장된다.
(메모리에 저장될 때는 2진수로 저장되지만 편의상 10진수로 표시)


성공적으로 연산이 끝났지만 문제가 있다. 연산 결과인 3을 재사용할 수 없다는 것이다.
연산 결과를 한 번만 사용한다면 문제가 되지 않지만, 재사용하고 싶은 경우 메모리 주소를
통해 연산 결과 3이 저장된 메모리 공간에 직접 접근해야 한다.


하지만, 메모리 주소를 통해 값에 직접 접근하는 것은 치명적 오류를 발생시킬 가능성이 높으며,
자바스크립트는 개발자의 직접적인 메모리 제어를 허용하지 않는다.

이와 같은 문제를 변수를 사용해 해결할 수 있다.

var result = 10 + 20;

연산을 통해 생성된 값 3을 메모리 공간에 저장하면 3을 재사용할 수 있으며,
3이 저장된 메모리 공간에 상징적인 이름을 붙인 것이 바로 변수다.




참고자료

MDN
모던 자바스크립트 Deep Dive

profile
프론트엔드 개발자를 꿈꾸는

0개의 댓글