얼레벌레

모던자바스크립트 Deep Dive - 5장 표현식과 문 본문

JavaScript/모던자바스크립트 Deep Dive

모던자바스크립트 Deep Dive - 5장 표현식과 문

낭낭이 2022. 3. 14. 00:25

식(표현식 expression)이 평가되어 생성된 결과를 일컫음

- 모든 값은 data type을 가진다

- 메모리에 2진수, 즉 비트의 나열로 저장된다

- 메모리에 저장된 값은 데이터 타입에 따라 다르게 해석될 수 있다

 

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

✔️ 리터럴 사용시 다양한 종류의 값을 생성할 수 있다

정수, 부동소수점, 2/8/16진수, 문자열, Boolean, null, undefined, 객체, 배열, 함수, 정규표현식 리터럴

 

표현식값으로 평가될 수 있는 문으로 표현식이 평가되면 새로운 값을 생성하거나 기존값을 참조

➰ 값으로 표현될 수 있는 문은 모두 표현식

➰ 표현식과 표현식이 평가된 값은 동치(equivalent) 관계

var score=100; // 100은 리터럴, 리터럴은 평가되며 값을 생성하므로 그 자체로 표현식

var score=50+50; // 50+50은 리터럴과 연산자로 구성됨. 50+50도 표현식

score; //-> 100. 변수식별자 참조시 값이 생성되진 않지만 평가되므로 표현식

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

- 문은 문법적 의미를 가지며, 더이상 쪼개질 수 없는 코드의 기본 요소인 토큰으로 구성된다

- 문은 명령문이라고도 칭함

- 선언문, 할당문, 조건문, 반복문 등으로 구분

- 세미콜론(;)은 문의 종료를 나타냄

⇨ 세미콜론 자동삽입기능(Automatic Semicolon Insertion)이 암묵적으로 실행되지만, 자동삽입기능의 동작과 개발자의 예측이 일치하는 경우도 존재하므로 세미콜론 사용 권장. 단, 중괄호로 묶은 코드블록 뒤에는 자체 종결성을 갖기 때문에 붙이지 않는다.

 

✔️ 표현식인 문과 표현식이 아닌 문을 구분하는 방법

❗️ 변수 할당 가능 여부 ⇨ 표현식인 문은 할당 가능, 표현식이 아닌 문은 할당 불가능

- 변수 선언문은 표현식이 아닌 문임

- 크롬 개발자 도구에서 표현식인 문을 실행하면 평가된 값을 반환하지만, 표현식이 아닌 문을 실행하면 undefiend를 반환한다.

var x; 
var foo=var x; // 불가능-> var x는 표현식이 아닌 문

x = 100;
var foo = x = 100; // 가능-> x = 100은 표현식인 문

 

Comments