앞서 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 |