자바스크립트 연산자 우선순위 표 및 쉬운 예제 3가지


자바스크립트 연산자 우선순위 순서는 괄호 → 증감 연산자 → 산술 연산자 → 비교 연산자 → 논리 연산자 → 대입 연산자 순서입니다. 괄호가 가장 순위가 높습니다. 증감 연산자와 NOT 논리 연산자는 산술 연산자보다 우선순위가 높습니다. AND/OR 논리 연산자는 비교 연산자 보다 순위가 아래에 위치합니다. 대입 연산자는 마지막 단계에서 연산됩니다.

자바스크립트 연산자 우선순위

자바스크립트 연산자 우선순위 순서를 비트 연산자를 제외하고 비교한 표입니다.


자바스크립트 연산자 우선순위(비트 연산자 제외)
순위 기능 연산자
1 괄호 ()
2 증감/논리 연산자 not ++ -- !
3 산술 연산자 곱셈 * / %
4 산술 연산자 덧셈 + -
5 비교 연산자 대소 < <= > >=
6 비교 연산자 같음 == === != !==
7 논리 연산자 and &&
8 논리 연산자 or ||
9 대입 연산자 = += -= *= /= %=

연산자 우선순위 예제1

괄호안의 값이 먼저 계산됩니다. 가장 안쪽의 (a + d)9의 결과가 먼저 도출됩니다.

(a + d) * ++c 이 식에서 * 곱하기 연산자보다 ++ 증감 연산자가 먼저 적용됩니다. ++c 와 같은 전치 증감 연산자는 먼저 더해지므로 c의 변수값 51을 더해서 6이 먼저 되야 합니다.

(a + d) * ++c = (9) * (1 + 5) = 54

> 초과 연산자의 우항의 a * d / b는 곱셈과 나눗셈이므로 순서와 상관없이 계산하면 3 * 6 / 9 = 2가 나옵니다.


document.write(54) > (a * d / b = 2)

최종적으로 54 > 2 의 비교이므로 비교 연산자로 true를 반환합니다.

var a = 3, b = 2;
var c = 5, d = 6;

document.write(((a + d) * ++c) > (a * d / b));

연산자 우선순위 예제2

괄호가 1순위이므로 (d / a), (b % c), (a + d), (c + b)를 먼저 연산합니다.

document.write((3) < (2) || (12) >= (12));

or 논리 연산자 || 보다 비교 연산자(><, >=)가 우선순위가 먼저입니다. 따라서 각 부등호를 먼저 풀이합니다.


document.write((false) || (true));

마지막으로 or 논리 연산자 || 기호는 한 쪽만 true 여도 true를 반환하므로 최종 연산의 답은 true가 됩니다.

var a = 3, b = 7;
var c = 5, d = 9;

document.write((d / a) < (b % c) || (a + d) >= (c + b));

연산자 우선순위 예제3

대입 연산자는 우선순위가 가장 낮습니다. a *= b + c의 연산 순서는 대입 연산자인 *= 보다 산술 연산자인 +가 먼저 진행됩니다.

그래서 a *= b + c의 결과는 a *= 12이 됩니다. 그래서 a *= 12는 a = a * 12 이므로, 3 * 12 = 36이 정답입니다.


var a = 3, b = 5, c = 7;

document.write(a *= b + c, "</br>");

반면 똑같은 변수에 일반 사칙연산에서는 곱셈 * 기호가 먼저 처리 됩니다.

var a = 3, b = 5, c = 7;

document.write(a * b + c);

a * b + c의 연산 순서는 15 + c가 됩니다. 그래서 답이 22가 됩니다.