연산자

산술연산자

산술 연산자에는 산수 시간에 배운 더하기(+), 빼기(-), 곱하기(*), 나누기(/), 나머지(%)가 있습니다. 산술 연산자로 연산을 하기 위해서는 연산 대상 데이터가 반드시 2개 있어야 합니다.

종류

기본형

설명

+

A+B

더하기

-

A-B

빼기

*

A*B

곱하기

/

A/B

나누기

%

A%B

나머지

<script>
    var num1 = 15;
    var num2 = 100;
    var result = 400;
    
    result = num1 + num2; //115
    document.write(result, "<br />");
    
    result = num1 - num2; //-85
    document.write(result, "<br />");
    
    result = num1 * num2; //1500
    document.write(result, "<br />");
    
    result = num1 / num2; //0.15
    document.write(result, "<br />");
</script>

<br>은 줄바꿈

대입연산자

대입 연산자(=)는 연산된 데이터를 변수에 저장할 때 사용합니다. 복합 대입 연산자(+=, -=, *=, /=, %=)는 산술 연산자와 대입 연산자가 복합적으로 적용된 것을 말합니다.

종류

풀이

A=B

A=B

A+=B

A=A+B

A*=B

A=A*B

A/=B

A=A/B

A%=B

A=A%B

<script>
    var num1 = 100;
    var num2 = 200;
    
    //num1 = num1 + num2;
    num1 +=num2;
    document.write(num1, "<br />");
    
    //num1 = num1 - num2;
    num1 -=num2;
    document.write(num1, "<br />");
    
    var x = 100;
    //x = x + 100;
    x += 100;
    document.write(x);
</script>

증감연산자

증감 연산자에는 숫자형 데이터를 1씩 증가시키는 증가 연산자(++)와 반대로 1씩 감소시키는 감소 연산자(--)가 있습니다. 증감 연산자는 앞에서 배운 연산자와는 달리 피연산자가 한 개만 필요한 단항 연산자입니다. 증감 연산자는 변수의 어느 위치에 오는가에 따라 결괏값이 달라집니다.

let num1 = 10; //전역변수 num1에 숫자 10을 할당
let num2 = 20; //전역변수 num2에 숫자 20을 할당
let num3 = 20; //전역변수 num2에 숫자 20을 할당
let result;

document.write(num1, "<br>");

num1--;
document.write(num1, "<br>");

num1++;
document.write(num1, "<br>");

result = num2++;
document.write(result,"<br>")
document.write(num2,"<br>")

result = ++num3;
document.write(result,"<br>")
document.write(num3,"<br>")

//10
//9
//10
//20
//21
//21
//21
function func1(){
            let result, a = 100, b = 200, c = 300;
            result = a < b ? b++ : --c;
            document.write(result);
}
func1();
function func2(){
            let hap, j, k, l;
            j = k = l = 0;
            hap = ++j + k++ + ++l;
            document.write(hap);
}
func2();

비교연산자

두 데이터를 '크다, 작다, 같다'와 같이 비교할 때 사용하는 연산자입니다. 연산된 결괏값은 true(참) 또는 false(거짓)로 논리형 데이터를 반환합니다.

연산자

예시

설명

==

x == y

좌변과 우변이 같다

===

x === y

좌변과 우변이 같다. 데이터형도 같다.

!=

x != y

좌변과 우변이 다르다.

!==

x !== y

좌변과 우변이 다르다. 데이터형도 다르다.

>

x > y

좌변이 우변보다 크다.

<

x < y

좌변이 우변보다 작다.

>=

x >= y

좌변이 우변보다 크거나 같다.

<=

x <= y

좌변이 우변보다 작거나 같다.

논리연산자

논리 연산자에는 ||(or), &&(and), !(not)이 있으며, 논리 연산자는 피연산자가 논리형 데이터인 true 또는 false로 결괏값을 반환합니다. ||(or) 연산자는 피연산자 중 하나만 true이면 true라는 결괏값을 반환합니다. 하지만 &&(and) 연산자는 피연산자 중 하나만 false이면 false라는 결괏값을 반환합니다. !(not)은 논리 부정 연산자로, 피연산자가 true이면 false라는 반대의 결괏값을 반환합니다.

연산자

예시

설명

&&

X && Y

둘다 true인 경우 true를 반환합니다.

||

X || Y

둘 중의 하나 이상이 true인 경우 true를 반환합니다.

!

!X

반대 값을 반환합니다.

let a = 10;
let b = 20;
let m = 30;
let n = 40;
let result;

result = a > b || b >= m || m > n;
document.write(result, "<br>");

result = a > b || b >= m || m <= n;
document.write(result, "<br>");

result = a <= b && b >= m && m <=n;
document.write(result, "<br>");

result = a <= b && b <=m && m <= n;
document.write(result, "<br>");

result = !(a > b);
document.write(result, "<br>");

//false
//true
//false
//true
//true

연산자 우선순위

일반적인 산수를 연산할 때처럼 연산자에도 우선순위가 있습니다. 예를 들어 '2+(1*3)=5'와 같은 식입니다. 이 식의 결과가 '9'라고 대답한다면 우선순위를 고려하지 않은 것이겠죠?

(+)지금까지 배운 연산자들의 우선순위

  1. ()

  2. 단항 연산자(--, ++, !)

  3. 산술 연산자(*, /, %, +, -)

  4. 비교 연산자(>, >=, <, <=, ==, ===, !==, !=)

  5. 논리 연산자(&&, ||)

  6. 대입(복합 대입) 연산자(=, +=, -=, *=, /=, %=)

이러한 우선순위를 고려하여 ++A*B<=C라는 코드를 실행한다면 먼저 변수 A에 데이터 1을 증가시키고 B를 곱한 다음 마지막으로 곱한 값을 C와 비교한 후 최종 결괏값을 반환합니다.

Last updated