이안의 평일코딩

5장 표현식과 문 본문

Study/JS Diver

5장 표현식과 문

이안92 2021. 6. 7. 18:34
반응형

p51.

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

 

p52.

- 리터럴은 사람이 이해할 수 있는 문자(아라비아 숫자, 알파벳, 한글 등) 또는 미리 약속된 기호('', "", ., [], {}, // 등)로 표기한 코드다. 자바스크립트 엔진은 코드가 실행되는 시점인 런타임(runtime)에 리터럴을 평가해 값을 생성한다. 즉 리터럴은 값을 생성하기 위해 미리 약속한 표기법이라고 할 수 있다.

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

 

p53.

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

 

p54.

- 문(statement)은 프로그램을 구성하는 기본 단위이자 최소 실행 단위다. 문의 집합으로 이뤄진 것이 바로 프로그램이며, 문을 작성하고 순서에 맞게 나열하는 것이 프로그래밍이다.

- 문은 여러 토큰(token)으로 구성된다. 토큰이란 문법적인 의미를 가지며, 문법적으로 더 이상 나눌 수 없는 코드의 기본 요소를 의미한다. var sum = 1 + 2; 라는 문에서 var, sum, =, 1, +, 2, ;는 토큰이다.

 

p55.

- 문을 명령문이라고 부른다. 문이 실행되면 명령이 실행되고 무슨 일인가가 일어나게 된다.

- 문은 선언문, 할당문, 조건문, 반복문 등으로 구분할 수 있다.

- 세미콜론(;)은 문의 종료를 나타낸다. 문을 끝낼 때는 세미콜론을 붙여야 한다. 단, 0개 이상의 문을 중괄호로 묶은 코드 블록({ ... }) 뒤에는 세미콜론을 붙이지 않는다. (if문, for문, 함수 등) 이러한 코드 블록은 언제나 문의 종료를 의미하는 자체 종결성(self closing)을 갖기 때문이다.

- 세미콜론은 옵션이고 생략이 가능하다. 자바스크립트 엔진이 소스코드를 해석할 때 문의 끝이라고 예측되는 지점에 세미콜론을 자동으로 붙여주는 세미콜론 자동 삽입 기능(ASI: automatic semicolon insertion)이 암묵적으로 수행되기 때문이다.

 

p56.

* 정적 분석 도구(Static Analysis)

소스 코드의 실행 없이, 코드의 의미를 분석해 결함을 찾아내는 코드 분석 기법

* ESLint는 JavaScript, JSX의 정적 분석 도구로 오픈 소스 프로젝트입니다. 코드를 분석해 문법적인 오류나 안티 패턴을 찾아주고 일관된 코드 스타일로 작성하도록 도와줍니다.

 

p57.

- 문에는 표현식인 문과 표현식이 아닌 문이 있다. 표현식인 문은 값으로 평가되므로 변수에 할당할 수 있지만 표현식이 아닌 문은 값으로 평가할 수 없으므로 변수에 할당하면 에러가 발생한다.

- 변수 선언문은 표현식이 아닌 문이고 할당문은 그 자체가 표현식이지만 완전한 문이기도 하다. 즉, 할당문은 표현식인 문이다.

 

// 변수 선언문은 표현식이 아닌 문이다.
var x;

// 할당문은 표현식인 문이다.
x = 100;

 

p58.

- 크롬 개발자 도구에서 표현식이 아닌 문을 실행하면 언제나 undefined를 출력한다. 이를 완료 값이라 한다. 개발자 도구에서 표현식이 아닌 문을 실행하면 완료 값 undefined를 출력한다. 표현식인 문은 평가된 값을 반환한다.

 

// 변수 선언문
var foo = 10;
undefined

// 조건문
if (true) {}
undefined

 

var num = 10;
undefined

// 표현식은 평가된 값을 반환한다.
// 표현식 문
100 + num;
110

// 할당문
num = 100;
100
반응형
Comments