JavaScript

[4장,5장]변수 , 표현식과 문

잼굴 2022. 2. 15. 14:31

1. 변수

 

컴퓨터는 인간과 문장을 해석하는 방식이 다르다.

 

10+20을 연산하기 위해서

메모리에 임시저장된 10, + , 20을 CPU가 꺼내서 연산처리를해서 30이라는 값을 도출하고 메모리한칸에 저장한다.

 

도출한 30의 값을 재사용하려면 연산 결과 30이 저장된 메모리 공간에 직접 접근해야한다.

 

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

 

변수는 값의 위치를 가리키는 상징적인 이름이고, 변수를 통해서 메모리 공간을 식별할수있다. 

(치환의 느낌)

 

변수에 값을 저장하는 것을 할당(assignment), 변수에 저장된 값을 읽어들이는 것을 참조(reference)라고 한다.

변수 선언은 let, const, var를 통해서 할수있다.

 

var score로 변수 선언을 했지만 값을 지정하지않아서 출력시 undefined라고 나온다.
-> 변수를 선언하면 메모리 공간을 확보하고 undefined라는 값으로 할당되어 초기화 되기때문이다.
 
var키워드를 사용하면 선언단계와 초기화 단계가 동시에 진행된다.
 
초기화 하는이유는 이전에 사용했던 값(쓰레기 값)이 남아있을수도 있기때문이다.
 
 
소스코드는 실행할때 한줄한줄 순차적으로 실행된다.
단, 실행되기전 평가과정이 있는데
평가과정은 변수선언을 포함한 모든 선언문을 소스코드에서 찾아내는 단계이다.
만약 평가단계에서 실행한 변수를 찾을수 없다면 ReferenceError가 발생한다.
 
console.log(score);
 
var score = 50; 
 
을 실행했을때 순차적으로 실행되기때문에 50이아닌 undefined가 출력되지, ReferenceError가 뜨진 않는다.
 
 
이미 선언된 변수에 새로운 값을 재할당 할수있다. 재할당을하면 현재 변수에 저장된 값을 버리고 새로운 값을 저장한다.
이때 이전 값이 저장된 메모리공간을 지우고 재할당값을 새로 저장하는것이 아니라, 새로운 메모리공간을 확보하고 그 공간에 재할당값을 저장한다.
 
 
변수 이름을 식별자 라고하며 네이밍 규칙을 준수해야한다.
식별자 네이밍 규칙: 
 
1. 문자,숫자, 언더스코어 _ , 달러기호 $를 포함할수있다. (특수문자x)
2. 숫자로 시작하는건 안됨
3. 예약어는 식별자로 사용할수 없다. (이미 프로그램에서 사용중인 언어들)
4. 대소문자를 구별할수있다.

2. 표현식과 문

 

값은 식이 평가되어 생성된 값.

 

var sum = 10 + 20;

sum 변수에 할당된것은 결과인 숫자값 30이다.

 

리터럴은 사람이 이해할 수있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법이다.

ex) 문자(아라비아 숫자, 알파벳, 한글) 또는 미리 약속된 기호("", . , [] , {} , // 등)로 표기한 코드.

 

표현식은 값으로 평가될 수 있는 문(statement)이다. 표현식이 평가되면 새로운 값을 생성하거나 기존값을 참조한다.

변수 식별자를 참조하면 변수 값으로 표현되고, 식별자 참조는 값을 생성하지는 않지만 값으로 평가되기때문에 표현식이다.

(리터럴도 값으로 표현되기때문에 리터럴도 표현식이다. )

 

 

문(statement)은

1. 프로그램을 구성하는 기본단위이자 최소 실행단위이다.

2. 컴퓨터에 내리는 명령이다.

3. 여러 토큰으로 구성된다.

4. 세미콜론 (;)은 문의 종료를 나타낸다. 문을 중괄호로 묶은 코드 블록 뒤에는 세미콜론을 붙이지 않는다.

토큰은 문법적인 의미를 가지며, 더이상 문법적으로 나눌 수 없는 코드의 기본요소를 의미한다.

 

 

표현식인 문은 값으로 평가 될수있는 문

표현식이 아닌 문은 값으로 평가될 수 없는 문

 

var x;    -> 변수 선언문은 표현식이 아닌 문

x = 100;  -> 할당문은 자체가 표현식이다. 표현식인 문

 

 

 

 

 

코딩공부중