본문 바로가기
HTML+CSS+Javascript/Javascript

3. 연산

by 김마리님 2020. 3. 10.

앞서 1장에서 자바스크립트는 HTML과 다르게 동적으로 연산이 가능한 언어라는 이야기를 했다.

이 연산을 가능하게 해주는 연산자를 알아본다.

 

1. 산술 연산

산술 연산은 우리가 흔히 아는 사칙 연산에서 하나를 추가한다.

%기호로 정의되는데, 이는 나머지 값을 의미한다. 우리는 이 값으로 홀, 짝수나 배수를 판별할 때 자주 이용한다.

ex)

    <script>
        var x=32;
        var total=100+x*2/4-3;
        var div=x/10; 
        var mod=x%2;
        document.writeln(x+"<br>");
        document.writeln(total+"<br>");
        document.writeln(div+"<br>");
        document.writeln(mod+"<br>");

값이 다음과 같이 출력된다.

두번째 값을 보면 알 수 있듯, 사칙연산의 순서는 현실과 마찬가지로 곱셈&나눗셈 -> 덧뺄셈으로 이루어진다.

세번째 줄을 보면, 3.2로 두 값 다 정수형으로 넣었음에도 실수형으로 반환되는 것이 보이는데, 이것이 자바스크립트의 가장 큰 특징이다. 데이터 타입을 선언하지 않기 때문에, 정수형으로 넣어도 자동적으로 프로그램 내에서 실수로 변환한다.

네번째 줄에서 볼 수 있는 특징은, 32/2로 나누었을 때, 몫이 16, 나머지가 0이기 때문에 값이 0으로 반환되는 것을 볼 수 있다.

 

 

2. 대입 연산

프로그래밍 코드는 간단한 것을 좋아하기 때문에, 언어도 간단하게 만들고자 한다. 따라서 =(등호)와 산술 연산자를 이용해 간단한 산술식을 최대한 간단하게 꾸민다. 이를 대입연산이라고 한다. 간단하고 처리과정이 단순하기 때문에 산술연산이나 증감연산보다 처리속도 역시 훨씬 빠르다.

        var a=3, b=3, c=3;
        a+=3; //a=a+3;
        b*=3; //b=b*3;
        c%=2; //c=c%2;
        document.writeln(a+"<br>");
        document.writeln(b+"<br>");
        document.writeln(c+"<br>");

옆의 주석은 대입연산을 산술연산으로 풀어 쓴 것이다. 따라서, 산술연산과 같이 다음처럼 값이 나오게 된다. + 뿐만 아니라 프로그래밍의 오칙연산 모두에 반영되는 내용이다.

 

 

3. 비교 연산

비교 연산은 두 값을 비교하여 결과를 논리형으로 반환하는 연산이다.

연산자는 다음과 같다.

a<b a가 b보다 작으면 참
a>b a가 b보다 크면 참
a<=b a가 b보다 작거나 같으면 참
a>=b a가 b보다 크거나 같으면 참
a==b a와 b가 같으면 참
a!=b a와 b가 다르면 참

!는 이후 논리 연산에도 쓰이는데, 부정의 의미를 가진다.

        var a=13, b=7;
        document.writeln(a==b);
        document.writeln(a!=b); 
        document.writeln(a>b);
        document.writeln(a>=b);
        document.writeln(a<b);
        document.writeln(a<b);

다음과 같이 출력이 된다. 주의해야할 점은 비교연산자의 등호는 =가 아닌 == 라는 점과, !가 들어가면 부정의 의미를 가진다는 점이다.

 

 

4. 논리 연산

논리 연산은 and, or, not으로 표현한다, 연산자와 의미는 다음과 같다.

a&&b and a와 b 둘다 true여야 true
a||b or a와 b 둘 중 하나라도 true면 true
a! not a가 true면 false, false면 true
        var x=true, y=false;
        document.writeln(x&&y);
        document.writeln(x||y);
        document.writeln(!x);
        document.writeln((3>4)&&(4>=2));
        document.writeln((3>4)||(4>=2));

볼수 있다시피, 양 쪽 다 true가 되지 않으니, and는 거짓, or은 참으로 나타나게 된다.

 

 

5. 조건연산(삼항연산)

조건연산은 (조건?값1:값2)의 형태가 나타난다.

        var a=3, b=5;
        document.writeln((a>b)?a:b);
        document.writeln("<br>");
        document.writeln((a>b)?"a가 큽니다.":"b가 큽니다.");

a가 b보다 큰 것이 거짓이기 때문에, 뒤의 값이 나타나게 된다.

조건연산은 조건문이 있어서 크게 쓰이지는 않는다.

 

 

5. 문자열 연산

+기호는 문자를 연결할 때에도 쓰인다. 이 때, 연산할 값 중 하나는 반드시 문자열이어야만 한다.

==, != 기호는 마찬가지로 문자열 일치 여부도 비교할 수 있다.

        document.writeln("abc"+23+"<br>");
        document.writeln("35"+23+"<br>");
        document.writeln("abc"+23+"<br>");
        document.writeln(35+23+"abc"+"<br>");
        s1="aaa"
        s2="bbb"
        document.writeln((s1==s2)+"<br>");
        document.writeln((s1!=s2)+"<br>");

두번째 줄 같은 경우는 "35"처럼, 큰 따옴표에 숫자를 가두어 문자열로서 만들었기 때문에 문자열 연산이 이루어졌다.

네번째 줄 같은 경우, 연산은 왼쪽에서 오른쪽으로 이루어지기 때문에, 23과 35를 먼저 더하고, abc가 다음으로 더해진다.

반대로, "abc"+35+23일 경우, "abc"와 35가 먼저 더해지고, 다음 23이 더해지기 때문에 결과값은 abc3523이 이루어진다.

 

반응형

'HTML+CSS+Javascript > Javascript' 카테고리의 다른 글

6. 함수  (0) 2020.03.11
5. 반복문  (0) 2020.03.11
4. 조건문  (0) 2020.03.11
2. 변수  (0) 2020.03.10
1. 자바스크립트 시작  (0) 2020.03.10