04 / 변수

JinKris·2022년 1월 20일
0
post-thumbnail

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

프로그래밍 언어는 기억하고 싶은 값을 메모리에 저장하고,
저장된 값을 읽어 들여 재사용하기 위해
변수라는 메커니즘을 제공한다.

변수

하나의 값을 저장하기 위해 확보한 메모리 공간 자체 또는
그 메모리 공간을 식별하기 위해 붙인 이름
참조 :
변수에 할당된 값을 읽어 들이는 것
식별자 :
메모리 상에 존재하는 어떤 값을 식별할 수 있는 이름.
함수이름(식별자)으로 메모리 상에 존재하는 함수 식별(자바스크립트에서 합수는 값)
변수이름(식별자)으로 메모리 상에 존재하는 변수 식별

변수 호이스팅

자바스크립트 엔진이 소스코드를 실행(런타임)시키기 전 변수 선언을 포함한 모든 선언문을 찾아내(평가과정) 먼저 실행한다. (var, let, const, function, function*, class 키워드를 사용해서 선언하는 모든 식별자는 호이스팅 된다,또 호이스팅은 스코프 단위로 동작한다)
변수 선언 :
변수(var)가 선언될시 자동으로 undefined값이 할당됩니다. (초기화하지 않았을시 디폴트로 할당)
값의 할당 :
'선언'은 런타임 이전 평가과정에서 먼저 찾아내 실행,
'값의 할당'은 런타임에 실행.

console.log(score) // undefined

var score; // 1)변수선언
score = 80; // 2)값의 할당

console.log(score); // 80

1)변수선언은 런타임 이전에 실행되어 JS 엔진이
2)값의 할당보다 먼저 찾아낸다. 런타임에 위에서 아래로 스크립트가 내려가며 실행할시 제일 처음 console.log부분에서 undefined가 출력되는 이유다.

profile
hello world

0개의 댓글