본문 바로가기

개발/javascript

표현식

"표현식"

표현식(expression)은 값으로 평가(evaluation)될 수 있는 문(statement)이다. 즉 표현식은 평가되어 값을 생성하는 문이다.

앞서 살펴본 리터럴은 값으로 평가된다. 따라서 리터럴도 표현식이다.

var score = 100;

/*
var score // 변수 선언문
score = 100; // 변수 할당문
*/

예제의 100은 리터럴이다. 리터럴은 자바스크립트 엔진에 의해 값으로 평가되므로 리터럴은 그 자체로 표현식이다. 다른 예제를 살펴보자.

var score = 50 + 50;

50 + 50은 리터럴과 연산자로 이루어져있다. 하지만 50 + 50도 평가되어 숫자 값 100을 생성하므로 표현식이다. 이처럼 표현식은 리터럴, 식별자(변수, 함수 등의 이름), 연산자, 함수 호출 등의 조합으로 이루어질 수 있다. 아래와 같이 다양한 표현식이 있지만 값으로 평가된다는 점에서 동일하다. 즉, 값을 생성하는 문은 모두 표현식이다.

  • 함수라는것은 호출할 수 있는것. 호출하면 반환값이라는걸 return 해준다.
    즉, 함수라는것은 호출하면 값으로 평가되어진다 => 함수 호출문도 표현식.
// 리터럴 표현식
10
'Hello'

// 식별자 표현식 (선언이 이미 존재한다고 가정)
sum
person.name //person이라는 객체의 name이라는 프로퍼티다.
arr[1] // 배열의 인덱스 값

// 연산자 표현식
10 + 20
sum = 10
sum ==! 10 // 10과 다르다면 true	반환 10과 같다면 false로 반환

// 함수/메소드 호출 표현식 (선언이 이미 존재한다고 가정)
square()
person.getName() //객체는 메소드라는 함수를 가질 수 있음. 예를 들어 person이라는 객체가 있고
// 이 person이라는 객체가 getName이라는 메소드(함수)를 가지고 있다고 했을떄 그 함수를 호출하면
// 함수를 호출하는것과 마친가지로 반환값을 return함

표현식은 평가되어 값을 생성한다. 이떄 표현식과 표현식을 생성한 값은 동등한 관계, 즉 동치(equivalent)다.

예를 들어, 수학의 수식 1 + 2 = 3에서 1 + 2는 3과 동치이다. 즉, 1 + 2 는 3과 같다고 할 수 있다.

자바스크립트의 표현식 1 + 2는 평가되어 값 3을 생성하므로 표현식 1 + 2와 값 3은 동치이다.

따라서 표현식은 값처럼 사용할 수 있다. 이것은 문법적으로 값이 위치할 수 있는 자리에는 표현식도 위치할 수 있다는 것을 의미한다.

'개발 > javascript' 카테고리의 다른 글

변수  (0) 2023.09.10
표현식인 문과 표현식이 아닌 문  (0) 2023.09.10
  (1) 2023.09.10
리터럴  (0) 2023.09.10
  (0) 2023.09.10