[Deep dive]표현식과 문

Jinny·2022년 1월 3일
0

javascript [Deep Dive]

목록 보기
3/11

값(value)

  • 값은 식이 평가되어 생성된 결과이다.
    • 평가란 식을 해석해서 값을 생성하거나 참조하는 것!
	// 10 + 20은 평가되어 숫자 값 30을 생성한다.
	10 + 20; // 30

	// 변수 var에는 10 + 20이 평가되어 생성된 숫자 값 30이 할당된다.
	var sum = 10 + 20;

리터럴(literal)

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

리터럴의 종류는 정수, 부동소수점, 2진수, 8진수, 16진수, 문자열, 불리언, null, undefined, 객체, 배열, 함수, 정규 표현식이 있다.

표현식(expression)

  • 값으로 평가될 수 있는 문이다. 즉 표현식이 평가되면 새로운 값을 생성하거나 기존 값을 참조한다!
	var score = 100;
  • 위의 100은 리터럴이다. 리터럴 100은 자바스크립트 엔진에 의해 평가되어 값을 생성하므로 리터럴은 그 자체로 표현식이 된다!
	var score = 50 + 50;

	score; // 100
  • 50 + 50은 리터럴과 연산자로 이루어져있다. 하지만 50 + 50도 평가되어 숫자10을 생성하므로 표현식이 되고, 변수 식별자를 이용해 score를 확인하는 것도 값을 생성하진 않지만 값으로 평가되므로 표현식이다!

    이처럼 표현식은 리터럴, 식별자, 연산자 , 함수 호출 등의 조합으로 이뤄질 수 있다.
    즉, 값으로 평가될 수 있는 문은 모두 표현식이다.

문(statement)

  • 프로그램을 구성하는 기본 단위이자 최소 실행 단위(컴퓨터에게 내리는 명령)
  • 문은 여러 토큰으로 구성된다
    - 토큰이란? 문법적인 의미를 가지며, 문법적으로 더 이상 나눌 수 없는 코드의 기본 요소를 의미한다.

    키웓, 식별자, 연산자, 리터럴, 세미콜론, 마침표 등의 특수기호는 문법저긴 의미를 가지며, 문법적으로 더 이상 나눌 수 없는 코드의 기본 요소 이므로 모두 토큰이다!

	//변수 선언문
	var x;
	
	//할당문
	x = 5;
	
	//함수선언문
	function foo(){}

	//조건문
	if(x>1){console.log(x);}
	
	//반복문
	for(var i=0;i<2;i++;){console.log(i);}
	

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

  • 표현식인 문?
    • 값으로 평가될 수 있는 문
  • 표현식이 아닌 문?
    • 값으로 평가될 수 없는 문
	//변수 선언문은 값으로 평가될 수 없으므로 표현식이 아니다!
	var x;
	// 1, 2, 1+2, x=1+2 는 모두 표현식

	// x = 1+2는 표현식이면서 완전한 문이기도 하다.
	x = 1+2

구별 방법?

  • 변수에 할당해 보는 것!!
    표현식인 문은 값으로 평가되므로 변수에 할당할 수 있다. 하지만 표현식이 아닌 문은 값으로 평가할 수 없으므로 변수에 할당하면 에러가 발생한다!
	//변수 선언문은 표현식 아님
	var x;

	//할당문은 그 자체가 표현식이며 완전한 문이다. 즉, 할당문은 표현식인 문이다.
	x=100;

	//표현식이 아닌 문은 값처럼 사용할 수 없다.
	var foo = var x; // SyntaxError: Upexpected token var
profile
프론트엔드 공부중입니다!

0개의 댓글