{JS} 02. 표현식과 문

nana·2022년 11월 12일
0

🟡 JS Deep Dive

목록 보기
3/6
post-thumbnail

2.1 값

  • value : 식(표현식/expression)이 평가/evaluate 되어 생성된 결과
// 10 + 20이 평가되어 숫자 값 30을 생성
10 + 20; // 30
// sum 변수에 10 + 20이 평가되어 생성된 숫자 값 30이 할당
var sum = 10 + 20;

2.2 리터럴

  • literal : 사람이 이해할 수 있는 문자(아라비아 숫자, 알파벳, 한글 등) 또는 약속된 기호( ' ', " ", . , [ ], // 등 )를 사용해 값을 생성하는 표기법/notaion

아라비아 숫자를 사용해 숫자 리터럴 3을 평가해 값 3을 생성

// 숫자 리터럴 3
3

2.3 표현식

  • expression : 값으로 평가될 수 있는 문/statement
    표현식이 평가되면 새로운 값을 생성하거나 기존 값을 참조
// 리터럴 표현식
10
'Hello'
// 식별자 표현식 (선언이 존재한다고 가정)
sum
person.name
arr[1]
// 연산자 표현식
10 + 20
sum = 10
sum !== 0
// 함수/메서드 호출 표현식 (선언이 존재한다고 가정)
square()
person.getName()
  • 표현식은 값으로 평가되며 동등한 관계, 동치/equivalent
    ex) 1 + 2 = 3 에서 1 + 2는 3과 동치
  • 표현식은 값처럼 사용할 수 있고 값이 위치할 수 있는 자리에 표현식도 위치할 수 있음
var x = 1 + 2;
// 식별자 표현식 x는 3으로 평가
x + 3; // 6

2.4 문

  • statement : 여러 토큰으로 구성되며 프로그램 구성 기본단위이자 최소 실행단위 (= 명령문)
token : 문법적 의미를 가지며, 더이상 나눌 수 없는 코드의 기본 요소
        ex) 키워드, 식별자, 연산자, 리터럴, 세미콜론(;), 마침표(.) 등
// 변수 선언문
var x;
// 할당문
x = 5;
// 함수 선언문
function foo () {}
// 조건문
if (x > 1) { console.log(x); }
// 반복문
for (var i = 0; i < 2; i++) { console.log(i); }

2.5 세미콜론과 세미콜론 자동 삽입 기능

  • 세미콜론 (;) : 문의 종료를 나타냄

  • 옵션이며 생략 가능, 세미콜론 자동 삽입 기능 (ASI)이 암묵적 수행됨
    하지만, 기능의 동작을 예측하지 못해 활용하지 못하는 경우도 발생

  • 중괄호로 묶은 코드블록 ({...}) 뒤에는 세미콜론을 붙이지 않음
    ex) if 문, for 문, 함수 등 -> 코드블록은 자체 종결성을 갖기 때문


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

  • 표현식인 문과 표현식이 아닌 문을 구별하는 방법은 변수에 할당 해보기
    표현식인 문은 값으로 평가되므로 변수에 할당가능
// 변수 선언문은 값으로 평가될 수 없으므로 표현식이 아닌 문
var x;
// 1, 2, 1 + 2, x = 1 + 2 는 모두 표현식
// x = 1 + 2 는 표현식이자 완전한 문
x = 1 + 2;
// 표현식이 아닌 문은 값처럼 사용 불가
var foo = var x;
// 할당문은 그 자체가 표현식이지만 완전한 문, 할당문 = 표현식인 문
x = 100;
// 표현식인 문은 값처럼 사용할 수 있다
var foo = x = 100;
console.log(foo); // 100
  • 완료 값/completion value : 개발자 도구에서 표현식이 아닌 문을 실행하면 undefined를 출력 , 이를 완료 값이라 함

:: 완료 값은 표현식의 평가 결과가 아니여서 다른 값과 같이 변수에 할당, 참조 불가

표현식이 아닌 문을 실행하면 undefined 출력
표현식인 문은 평가된 값을 반환
profile
✧ 중요한건 꺾이지 않는 마음 🔥 ᕙ(•ө•)ᕤ 🔥

0개의 댓글