Js나 다른 컴퓨터 공학 전반에서 자주 사용되는 용어의 의미에 대해서 주의 깊게 살펴보자!
1. 값
평가 ❔
식을 해석해서 값을 생성하거나, 참조 하는 것
10 + 20;
위의 식은 평가되어 숫자 값 30을 생성
값은 식이 평가가 완료되면 생성되는 결과를 의미한다!
모든 값은 데이터 타입을 가진다 (String, Number, Object, Class, Function)
변수에 저장되는 것은 식이 아닌 평가가 완료된 식이 만들어 내는 결과 값이다
2. 리터럴
사람이 이해할 수 있는 문자 or 기호로 값을 생성 하는 표기법
Js 엔진은 런타임 시점에 리터럴을 평가 하여 값을 생성한다
한마디로, 값을 생성하기 위해서 미리 약속한 표기법이다
Number : 10, 10.5, 0x41
'10' 이라는 사람이 이해할 수 있는 리터럴을 평가를 통해서 값을 생성한다!
String : 'Hello', "World"
Boolean : True or False
3. 표현식
새로운 값을 생성하기 위해서 평가될 수 있는 문, 값으로 평가될 수 있는 문은 모두 표현식이다
var age = 24 + 1
console.log(age);
const suqare = (x) => {
return x * x;
}
var num = suqare(4);
- 여기서, 24는 리터럴이다, 런타임 시점에 평가가 완료되면 '24' 라는 값이 생성되므로 리터럴은 그 자체로 표현식이다.
- 24 + 1은 리터럴과 연산자로 이루어져 있다. 24 + 1도 평가되어 '25' 라는 값을 생성하므로 표현식이다
- 변수 age를 참조하여 콘솔창에 보여주는 경우에도 값을 생성하지는 않지만 평가되므로 표현식이다
- 함수의 경우에도 호출을 통해서 함수가 평가 되므로 표현식이다
표현식과 표현식의 평가가 완료된 후 생성된 값은 동치다
4. 문
프로그램을 구성하는 기본 단위이자 최소 실행단위.
문의 집합으로 이루어진 것이 프로그램, 여러 토큰으로 이루어져 있다
토큰 ❓❗
문법적인 의미를 가지고, 더이상 나눌 수 없는 코드의 기본요소
키워드, 식별자, 연산자, 리터럴, 세미콜론, 마침표..
선언문, 할당문, 반복문, 조건문 ⬅️ 모두 명령문!
5. 세미콜론과 자동 삽입 기능
세미콜론은 문의 종료 를 나타낸다, 세미콜론으로 문의 종료 위치를 파악하고 순차적으로 하나씩 문을 실행한다.
if, for, 함수 등의 코드블럭은 자체 종결성을 갖기 때문에 이 문들 뒤에는 세미콜론 X
Js 에서는 자동완성 기능(ASI)이 암묵적으로 수행되기 때문에, 세미콜론은 생략이 가능함
개발자의 작성의도와 ASI 동작결과가 일치하지 않을 수 있기 때문에, 세미콜론을 붙이는게 좋다
6. 표현식인 문과 표현식이 아닌 문
조건 | 결과 |
문이 값으로 평가 된다. | 문이면서 표현식 |
문이 값으로 평가 되지 않는다 | 문이지만 표현식 X |
var x; // 할당문: 값으로 평가되지 않으므로 표현식이 아닌 문
x = 1 + 2; // 3인 값으로 평가되므로 표현식인 문
구분할 수 있는 가장 간단한 방법은, 변수에 할당해 보는 것
var age = var x; // 할당문은 변수에 할당할 수 없다. 표현식이 아닌 문
var year = 2022 // 2022인 값으로 평가되는 표현식인 문
'javascript > DeepDive' 카테고리의 다른 글
[DEEP DIVE] 9. 타입 변환과 단축 평가 (3) | 2022.10.03 |
---|---|
[DEEP DIVE] 8.제어문 (0) | 2022.09.30 |
[DEEP DIVE] 7. 연산자 (0) | 2022.09.28 |
[DEEP DIVE] 6. 데이터 타입 (0) | 2022.09.26 |
[DEEP DIVE] 4. 변수 (0) | 2022.09.25 |