본문 바로가기

JavaScript

[Deep dive] 5장 표현식과 문

5.1 값

 

값(value)

- 식(expression)이 평가(evaluate)되어 생성된 결과 

- 평가란 식을 해석해서 값을 생성하거나 참조하는 것

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

- 모든 값은 데이터 타입을 가지며, 메모리에 2진수 즉 비트의 나열로 저장

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

//변수에는 10+20이 평가되어 생성된 숫자 값 30이 할당
var sum = 10 + 20;

 

5.2 리터럴

 

리터럴(literal)

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

- 자바 스크립트 엔진은 코드가 실행되는 시점인 런타임(runtime)에 리터럴을 평가해 값을 생성

 

리터럴 예시
정수 리터럴 100
부동 소수점 리터럴 10.5
2진수 리터럴 0b01000001
8진수 리터럴 0o101
16진수 리터럴 0x41
문자열 리터럴  'Hello'
"World"
불리언 리터럴 true
false
null 리터럴 null
undefined 리터럴 undefined
객체 리터럴 {name : 'Lee', address : 'Seoul'}
배열 리터럴  [1,2,3]
함수 리터럴 function () {}
정규 표현식 리터럴 /[A-Z] +/g

 

 

5.3 표현식

 

표현식(expression)

- 값으로 평가될 수 있는 문(statement)

- 표현식이 평가되면 새로운 값을 생성하거나 값을 참조 

 

- 값으로 평가될 수 있는 문은 모두 표현식

//리터럴 표현식
10
'Hello'

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

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

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

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

- 값이 위치할 수 있는 자리에는 표현식도 위치 가능

var x = 1+2;

//식별자 표현식 x는 3으로 평가 
x+3; // 6

 

5.4 문

 

문(statement)

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

- 프로그램 : 문의 집합

- 문은 여러 토큰으로 구성

- 컴퓨터에 내리는 명령

 

토큰(token)

- 문법적인 의미를 가지며, 문법적으로 더 이상 나눌 수 없는 코드의 기본 요소 

//변수 선언문 
var x;

//할당문
x=5;

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

//조건문
if (x>1) {console.log(x);}

//반복문
for(var i = 0; i < 2; i++) {console.log(i);}

 

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

 

- 표현식은 문의 일부일 수도 있고 그 자체로 문이 될 수도 있다

 

- 표현식인 문 

 : 값으로 평가될 수 있는 문 

 

- 표현식이 아닌 문

 : 값으로 평가될 수 없는 문 

 

- 표현식인 문과 표현식이 아닌 문을 구별하는 가장 간단한 방법은 변수에 할당해 보는 것

//표현식이 아닌 문은 값처럼 사용 불가
var foo = var x; //SyntaxError

//표현식인 문은 값처럼 사용 가능
var foo = x = 100;
console.log(foo); //100

'JavaScript' 카테고리의 다른 글

[Deep dive] 7장 연산자  (0) 2023.08.07
[Deep dive] 6장 데이터 타입  (0) 2023.08.07
[Deep dive] 4장 변수  (0) 2023.08.07
17장 마무리 문제 2  (0) 2023.04.14
17장 마무리 문제 1  (0) 2023.04.14