language/javaScript

5. 표현식과 문

wooweee 2023. 4. 30. 10:27
728x90

1. 값

  • 식(표현식)이 평가되어 생성된 결과
  • 평가: 식을 해석해서 값을 생성 혹은 참조하는 것

 

// 10 + 20은 평가되어 숫자 값 30을 생성
10 + 20; // 30

 

  • 모든 값은 data type을 가지며 메모리에 저장된다.
  • 현재는 값이 저장되었지만 변수가 없기에 재사용이 불가

 

2. 리터럴

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

 

  • 리터럴의 종류
    • 정수, 부동소수점
    • 2진수, 8진수, 16진수
    • 문자열
    • 불리언
    • null, undefined
    • 객체, 배열, 함수
    • 정규식

 

3. 표현식

 

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

 

    1. 값을 생성
    2. 기존 값 참조
// 표현식 : 100
// 100은 js engine에 의해 평가되어 값을 생성하므로 리터럴 자체가 표현식이다.
var score = 100;

// 표현식 : 50 + 50
// 50+50은 리터럴과 연산자로 이뤄져 있고 값으로 100을 생성하므로 표현식이다.
var score = 50 + 50;

// 표현식 : score(변수 식별자)
// 변수 식별자를 참소하면 변수 값으로 평가
score; // 100

 

  • 표현식의 종류
// 리터럴 표현식
10
'hello'

// 연산자 표현식
10 + 20;
sum = 10;
sum !== 10;

// 식별자 표현식 (선언이 이미 존재한다고 가정)
sum;
person.name;
arr[1];

// 함수/method 호출 표현식(선언이 이미 존재한다고 가정)
square();
person.getName();

 

4. 문

 

  • progrem을 구성하는 기본 단위이자 최소 실행 단위
    •  컴퓨터에서 내리는 명령
    • 선언문, 조건문, 할당문, 반복문 등등 존재
  • 문은 여러 토큰으로 구성
  • 토큰 : 문법적인 의미를 가지며, 문법적으로 더 이상 나눌 수 없는 코드의 기본 요소 의미

 

  • 문, 토큰
var s = 1 + 2;

// 문
    // var s = 1 + 2;

// 토큰
    // var
    // s
    // =
    // 1
    // +
    // 2
    // ;

 

  • 문 종류
// 변수 선언문
var x;

// 할당문
x = 5;

// 함수 선언문
function foo () {};

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

 

 

  • 표현식과 문
    • 표현식 : 값이 나오는 것
    • 문 : 코드가 실행되는 단위

 

5. 세미콜론과 세미콜론 자동 삽입 기능

 

  • 세미콜론은 문의 종료를 나타낸다.
  • JS engine은 문이 끝났다고 예측되는 위치에 세미콜론을 자동으로 붙여주는 ASI 기능이 있기 때문에 생략 가능은 하다. (권장은 안함)

 

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

 

// 변수 선언문 : 값으로 평가될 수 없으므로 표현식 아님
var x;

// 표현식이면서 완전한 문
x = 1 + 2;

 

  • 구별하는 간단 정확 방법 : 변수에 할당 해보는 것
// 표현식이 아닌 문
var foo = var x; // error

// 표현식인 문
var foo = x=1+2; // 3