표현식 (Expression)
표현식(Expression)은 하나의 값으로 평가 된다.
값(리터럴), 변수, 객체의 프로퍼티, 배열의 요소, 함수 호출, 메소드 호출, 피연산자와 연산자의 조합은 모두 표현식이며 하나의 값으로 평가된다. 표현식은 결국 하나의 값이 되기 때문에 다른 표현식의 일부가 되어 조금 더 복잡한 표현식을 구성할 수도 있다. ex) 5*10은 50으로 펼가(연산)된다.
문 (Statement)
프로그랩은 컴퓨터에 의해 단계별로 수행될 명령들의 집합이다.
각각의 명령을 문(Statement)이라 하며 문이 실행되면 무슨 일인가 일어나게 된다.
문은 리터럴, 연산자(Operator), 표현식(Expression), 키워드(Keyword) 등으로 구성되며 세미콜론(;) 으로 끝나야 한다.
문은 코드 블록 (code block, {...})으로 그룹화 할 수 있다. 그룹화의 목적은 함께 실행되어져야 하는 문을 정의하기 위함이다.
문들은 일반적으로 위에서 아래로 순서대로 실행된다. 이러한 실행 순서는 조건문 (if, switch)이나 반복문(while, for)의 사용으로 제어할 수 있다. 이를 흐름제어(Control Flow)라 한다.
표현식과 문의 비교
자연어에서 문(Statement)이 마침표로 끝나는 하나의 완전한 문장(Sentence)이라고 한다면 표현식은 문을 구성하는 요소이다. 표현식은 그 자체로 하나의 문이 될 수도 있다.
표현식과 문은 매우 유사하여 구별이 어려울 수 있다. 표현식은 평가되어 값을 만들지만 그 이상의 행위는 할 수 없다.
문은 var, function과 같은 선언 키워드를 사용하여 변수나 함수를 생성하기도 하고 if, for, while문과 같은 제어문을 생성하여 프로그램의 흐름을 제어하기도 한다. 표현식을 통해 평가한 값을 통해 실제로 컴퓨터에게 명령을 하여 무언가를 하는 것은 문이다.
참고 및 출처
'JavaScript' 카테고리의 다른 글
자바스크립트 개발자가 알아야할 33가지 개념[#09. 이벤트 루프] (0) | 2022.05.19 |
---|---|
자바스크립트 개발자가 알아야할 33가지 개념[#08. IIFE, Modules and Namespace] (0) | 2022.05.17 |
자바스크립트 개발자가 알아야할 33가지 개념[#06. 함수 범위(Function Scope), 블럭 범위(Block Scope), 렉시컬(lexical) 범위] (0) | 2022.05.11 |
자바스크립트 개발자가 알아야할 33가지 개념(#05. == vs === and Typeof) (0) | 2022.05.10 |
자바스크립트 개발자가 알아야할 33가지 개념(#04. 암묵적 타입 변환 (Implicit coercion)) (0) | 2022.05.10 |
댓글