4.변수

김미진·2022년 7월 1일
0

변수

  • 하나의 값을 저장하기 위해 확보한 메모리 공간 자체 또는 그 메모리 공간을 식별하기 위해 붙인 이름
  • 값의 위치를 가리키는 상징적인 이름
  • 값이 저장된 메모리 공간의 주소로 치환

개발자가 직접 메모리 주소를 통해 값을 저장 및 참조할 필요 없이 변수를 통해 안전하게 값에 접근 가능하다.

변수이름 : 메모리 공간에 저장된 값을 식별할 수 있는 고유한 이름 (=result)
변수 값 : 변수에 저장된 값 (=30)

var result = 10 + 20;

할당 : 변수에 값을 저장하는 것
참조 : 변수에 저장된 값을 읽어들이는 것

식별자

  • 어떤 값을 구별해서 식별할 수 있는 고유한 이름

식별자는 값이 저장되어 있는 메모리 주소를 기억하고 있다.

변수 선언

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

변수를 선언할 땐 var, let, const 키워드를 사용한다.
변수를 선언한 후 할당을 하지않으면 undefined라는 값이 암묵적 할당되어 초기화된다

변수선언과정

  • 선언단계 : 변수이름을 등록해서 자바스크립트 엔진에 변수의 존재를 알린다.
  • 초기화단계 : 값을 저장하기 위한 메모리 공간을 확보하고 암묵적으로 undefined를 할당해 초기화한다.

선언하지 않은 식별자에 접근하면 ReferenceError(참조에러) 발생

호이스팅

console.log(score); //undefined
var score;

undefined가 출력된 이유는?

  • 변수선언이 소스코드가 한 줄씩 순차적으로 실행되는 시점, 즉 런타임이 아니라 그 이전단계에서 먼저 실행되기 때문 => 변수 호이스팅

변수호이스팅 : 변수 선언문이 코드의 선두로 끌어올려진 것처럼 동작하는 것

값의 할당, 재할당

변수에 값을 할당할 때는 할당연산자 =를 사용

var score = 80; //변수 선언과 값의 할당

변수에 값을 할당할 때는 이전 값 undefined가 저장되어 있던 메모리 공간을 지우는 것이 아니라 새로운 메모리 공간을 확보하고 그곳에 할당 값 80을 저장한다!

console.log(score); //undefined
score = 80;
var score;
console.log(score); //80

재할당 : 이미 값이 할당되어 있는 변수에 새로운 값을 또다시 할당하는 것

var score = 80; //변수 선언과 값의 할당
score = 90; //값의 재할당

상수에는 값을 재할당할 수 없다!
80이라는 값은 불필요하기 때문에 가비시 콜렉터에 의해 메모리에서 자동 해제

식별자 네이밍 규칙

  • 식별자는 특수문자를 제외한 문자, 숫자, 언더스코어(_), 달러 기호를 포함할 수 있다.
  • 단, 식별자는 특수문자를 제외한 문자, 언더스코어, 달러 기호로 시작해야 한다. 숫자로 시작하는 것은 허용 불가
  • 예약어는 식별자로 사용할 수 없다.

참고 https://poiemaweb.com

profile
프론트엔드 개발자가 되고 싶은걸요! 오늘도 열공중

0개의 댓글