수식과 연산자

수식

자바스크립트 수식(expression)은 자바스크립트 인터프리터가 값을 만들어 내기 위해 평가할 수 있는 구절을 의미한다. 기본 수식으로 리터럴이나 변수명이 있으며, 리터럴 수식의 값은 리터럴 값 자체이며, 변수 수식의 값은 해당 변수에 담겨 있거나 해당 변수가 가리키는 값이다.

기본 수식을 사용하는 예제는 다음과 같다.

"Hello!"        // 문자열 리터럴
10.5            // 숫자 리터럴
true            // 불린 리터럴
null            // 널값 리터럴
/hello/         // 정규표현식 리터럴
{name:jerry}    // 객체 리터럴
[1,3,5,7,9]     // 배열 리터럴
function(x,y){return x+y;}  // 함수 리터럴
i               // 변수 i
count           // 변수 count 

자바스크립트 수식은 간단한 수식을 조합해서 만들 수도 있다. 다음 예제를 보자.

"Hello!" + x + y
100 - i
100 + i - j

피연산자의 개수

연산자는 피연산자의 개수에 따라 분류할 수 있다.

이항 연산자: 두 수식을 하나의 복합 수식으로 결합한다. 다음 예제를 보자.

x + y // 덧셈 i - j // 뺄셈

단항 연산자: 단 하나의 수식을 단 하나의 복합 수식으로 변환한다. 다음 예제를 보자.

-10         // 단항 마이너스(부정)
typeof x    // 반환형

삼항 연산자: 세 개의 수식을 단 하나의 복합 수식으로 결합한다. 다음 예제를 보자.

i ? x : y   // 조건 연산자

연산자 우선순위

연산자 우선순위는 연산이 수행되는 순서를 좌우한다. 기본 규칙은 덧셈과 나눗셈은 덧셈과 뺄셈보다 먼저 수행되고, 할당은 우선순위가 매우 낮으며, 거의 항상 마지막에 수행된다는 것이다. 다음 예제를 보자.

result = x + y*z;

곱셈 연산자인 *는 덧셈 연산자인 +보다 우선순위가 높기 때문에 곱셈은 덧셈보다 먼저 수행된다. 게다가 할당 연산자인 =은 우선순위가 가장 낮기 때문에 할당은 오른쪽에 있는 연산이 모두 완료된 후에야 수행된다.

연산자 결합법칙

연산자 결합법칙은 우선순위가 동일한 연산이 수행되는 순서를 명시한다.

왼쪽에서 오른쪽으로: 연산이 왼쪽에서 오른쪽 방향으로 수행되는 것을 의미한다. 예를 들어, 다음의 두 수식은 같다.

result = x + y + z;
result = ((x + y) + z);

오른쪽에서 왼쪽으로: 연산이 오른쪽에서 왼쪽으로 수행되는 것을 의미한다. 예를 들어, 다음의 두 수식은 같다.

result = !!!x;
result = !(!(!x));

관련 수업

← 이전다음 →