티스토리 뷰

728x90

5. 표현식과 문

“표현식”이 “평가”되어 생성된 결과

10 + 20 // 30

10+20 이 평가되어 숫자 값 30을 생성

모든 값은 데이터 타입을 갖고, 데이터 타입에 따라 다르게 해석됨!

⇒ 0100 0001 ⇒ number ? 65 , string ? ‘A’

변수는 하나의 값을 저장하기 위해 확보한 메모리 공간 or 메모리 공간을 식별하기 위해 붙인 이름

⇒ 변수에 할당되는 것은 “값”

var score = 10 + 20;

score라는 변수에 할당되는 것은 표현식이 아닌 30이라는 값

리터럴

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

3

⇒ 숫자 리터럴 3 ㅋㅋ ( 사람이 이해할 수 있는 아라비아 숫자를 사용한거)

⇒ 자바스크립트 엔진은 이를 평가해서 숫자 값 3을 생성

자바스크립트 엔진은 런타임 때 리터럴을 평가해서 값을 생성

즉, 리터럴은 값을 생성하기 위해 미리 약속한 표기법

표현식

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

⇒ 표현식이 평가되면 새로운 값을 생성하거나 기존의 값을 참조

var score = 100;

리터럴 100

자바스크립트 엔진에 의해 평가 ⇒ 값을 생성

⇒ 리터럴은 그 자체로 표현식

var score = 10 + 20;

리터럴과 연산자 ⇒ 10+20이 평가되어 값 30 생성 ⇒ 표현식

score;

변수 식별자 참조 → 변수 값으로 평가됨

⇒ 식별자 참조는 값을 생성하진 않지만, 값으로 평가되므로 표현식!!!

이처럼 다양한 표현식이 있지만 모두 값으로 평가된다는 공통점

값으로 평가될 수 있는 문은 모두 표현식이다!

표현식과 표현식이 평가된 값은 동등한 관계, 동치

1 + 2 = 3

1+2와 3이 동치 관계인 것처럼 자바스크립트 표현식도 동일ㄹ

⇒ 따라서 표현식은 값처럼 사용할 수 있따

⇒ 이 말은 즉슨 ㅋ 문법적으로 값이 위치할 수 있는 자리에 표현식이 위치할 수도 있다는 말씀

“문”과 “표현식”을 잘 구분할 수 있어야함

“문”은 프로그램을 구성하는 기본 단위이자 최소 실행 단위

⇒ 이 문을 작성해서 순서에 맞게 나열하는 것이 프로그래밍

var sum = 1 + 2 ;
//token = var , sum , = , 1, + , 2 , ;

문은 여러 토큰으로 구성된당

(토큰 ? 문법적으로 더이상 나눌 수 없는 코드의 기본 요소)

이 문을 명령문이라고도 부른다 (ex. 선언문 할당문 반복문 조건문 등등 ㅋ)

⇒ 문이 실행되면 무슨 일이 일어나게 된당

세미 콜론

자바스크립트 엔진은 세미콜론으로 문의 종료 위치 파악 ⇒ 하나씩 순차 실행

따라서 문이 끝날 때는 세미콜론을 붙여아 한당

하지만 중괄호로 묶은 코드 블록 뒤에는 세미 콜론을 붙이지 않는당

  • why? 코드 블록은 자체 종결성을 갖고 있어서

근데 사실 이 세미콜론은 옵션이라 생략 가능함 ㅋ

자바스크립트 엔진이 세미콜론으로 종료 위치를 파악해야되는데 왜 옵션?

⇒ 세미콜론 자동 삽입 기능(ASI)을 엔진이 암묵적으로 수행 ㅋ

하지만 간혹가다가 ASI 동작과 개발자의 예측이 일치하지 않는 경우가 있덩

function foo (){
	return {}
}

//예측 => return {};
//ASI => return; {};

표현식인 문과 표현식이 아닌 문

표현식은 문의 일부일 수도 있고, 문 그 자체일 수도 있음

var x;
//선언문은 값으로 평가될 수 없으니 표현식이 아니당
x = 1 + 2;
//표현식이면서 완전한 문

문에는 표현식인 문과 그렇지 않은 문이 있슴

표현식은 값으로 평가될 수 있는 문! 아닌 문은 반대

이 둘을 구분할 수 있는 가장 명료한 방법은 변수에 할당해보는 것

⇒ 표현식인 문은 값이니까 변수에 할당할 수 있당

var foo = var x;
//선언문은 표현식이 아니라 이렇게 사용 불가

var x;
x = 100;
//할당문은 문이면서 표현식
var foo = x = 100;
//이렇게 사용할 수 있슴

 

 

💡 완료 값
콘솔에서 표현식이 아닌 문을 실행하면 undefined가 출력됨
⇒ 실행을 완료했다는 의미로 ㅋ

표현식인 문은 평가된 값을 반환~

 

728x90
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함