
증감 연산자는 숫자형 데이터를 1씩 증가시키는 증가연산자(++) 1씩 감소시키는 감소연산자(--)가 있다. 이 두 연산자는 변수를 사용하기 전 후에 변숫값을 1만큼 증가시키거나 감소시킨다. 그리고 증가 ,감소 연산자를 변수 앞 또는 뒤에 붙였을 때 서로 다른 결괏값을 보여준다. 즉 증감 연산자는 기호가 어디에 오느냐에 따라서 계산 방식이 달라진다.
[기본형]
1. 변수--; 또는 --변수;
변수++; 또는 ++변수;
앞에 기호를 붙이면 전위연산 뒤에 기호를 붙이면 후위연산이라고 부른다.
전위 연산과 후위 연산
증감연산자에서 기호가 변수의 앞에 오면 '전위연산'
변수의 뒤에 오면 '후위연산'이라고 부른다. 보통 후위연산 방식을 가장 많이 쓴다.
1.전위 연산
var A = ++B
=> 변수 B의 값을 먼저 1 증가시킨 후 A에 대입된다.
var a =10 // a는 10이다
var b =++a +5 // b는 16 , a는 11이다.
2.후위 연산 ★
var A = B++
=> 변수 B의 값을 먼저 A에 대입시킨 후, B가 1 증가한다.
var c = 10;//c는 10이다.
var d = c++ +5 // d는 15 c는 11이다. 계산이 끝난 후에 c++이 1증가한다.
증감 연산자는 앞에서 배웠던 다른 연산자와 다르게 피연산자가 1개만 필요한 '단항연산자'이다.
즉, 증감 연산자는 스스로 연산하는 연산자이다.
비교 연산자는 두 데이터를 '크다','작다','같다'와 같이 비교할때 사용한다.연산된 결과값은 true(참) 또는 false(거짓)으로 반환된다.
[기본형]
1.A>B :A는 B보다 크다.
2.A<B :A는 B보다 작다. 이때 앞쪽에 있는 데이터 A가 기준이다.
3.A>=B:A는 B보다 크거나 같다. (=이상)
4.A<=B:A는 B보다 작거나 같다. (=이하)
5.A==B:A는 B와 같다.
=>느슨한 비교이다.숫자를 비교할 경우 자료형은 숫자형이든 문자형이든 상관하지 않고 표기된 숫자만 일치하면 true를 반환한다.
예를 들어 "10"과 10은 표기된 숫자가 같으므로 true를 반환한다.
예시로 10=="10" 일때 true라고 말한다.
6.A===B:
=>엄격한 비교이다. 숫자를 비교할 경우 표기된 숫자와 자료형까지 모두 일치해야만 true를 반환한다. 예를 들어 "10"과 10은 표기된 숫자는
같지만 자료형이 다르므로 false를 반환한다.
예시로 10==="10"일때 데이터의 유형이 다르므로 false라고 말한다.
7.A != B: A는 B와 다르다.
=>!= 은 느슨한 비교이다. 숫자를 비교할 경우 자료형은 숫자형이든 문자형이든 상관하지 않고 표기된 숫자만 다르면 true를 반환한다.
반대로 표기된 숫자만 같으면 false를 반환한다.
예시로 10 != "10"일때 false라고 말한다.
8.A !== B :A는 B와 다르다.
=>!== 은 엄격한 비교이다. 숫자를 비교할 경우 반드시 표기된 숫자 또는 자료형이 일치하지 않을 때 true가 반환된다.
예시로 10!=="10"일때 표기된 숫자는 같지만 자료형이 다르기때문에 true라고 말한다.
var k = 10;
var m = "10";
k == 10; //true
k == "10"; //true 느슨한 비교
m === 10; //false 자료형이 다르므로
m === "10"; //true

논리연산자에는 ||(shift+\) (or),&&(and),!(not)연산자가 있다.
논리연산자는 피연산자가 논리형 데이터인 true 또는 false로 나눠지는
데이터를 피연산자로 사용하고, 결괏값은 논리형 데이터가 최종 반환된다.
||(or)연산자는 피연산자 중 하나라도 true가 있으면 true로 최종값을 반환하고,
&&연산자는 피연산자 중 하나라도 false가 있으면 최종값을 false로 반환한다.
즉, &&연산자(and)는 모든 피연산자가 true여야만 true값을 최종 반환한다.
!(not)은 논리부정연산자로 단항 연산자이며, 최종결과가 true면 false를 반환하고
false면 true를 반환한다.
예시)
var a = 10;
var b = 20;
var m = 30;
var n = 40;
var result;
result = a > b || b >= m > n;
false;
document.write(result, "<br>");
// ||는 하나만 true여도 true를 반환한다.
result = a > b || b >= m || m <= n; //true
document.write(result, "<br>");
result = a <= b && b <= m && m <= n; //
document.write(result);
// 모든 값이 true이므로 true를 반환한다.
result = !(a>b); // !(false) => false를 부정하여 true가 나온다.
연산자 우선순위
연산자가 여러 개가 있을 경우 먼저 계산해야 하는 것을 연산자의 우선순위라고 한다.
예를 들어 2+(1+3)5 이런 식이 있다고 할 때 ()다음 를 계산하고, 마지막으로 +를 계산하듯, 연산자에도
우선순위가 있다.
삼항조건연산자는 조건식의 만족 여부(true 또는 false)에 따라
실행 결과가 달라지는 삼항 연산자로, 연산을 위해 피연산자가 3개가 필요하다.
기본형
(조건)? true일 때 실행할 명령 : false일 때 실행할 명령
삼항 조건 연산자는 먼저 조건식이 true인지 false인지 먼저 계산한다.
이후 true면 자바스크립트 코드1을 실행하고 종료한다.
만약 false면 자바스크립트 코드2를 실행하고 종료한다.
[기본형]
조건식 ? 자바스크립트 코드1 : 자바스크립트 코드2
조건식1 ? 자바스크립트 코드1 : 조건식2 ? 자바스크립트 코드2 : 자바스크립트 코드3
=> 1. 조건식1 검사
2. 조건식1이 true면 자바스크립트 코드1을 실행 후 종료.
3. 조건식1이 false면 또 조건식2를 검사하고, true면 자바스크립트 코드2를 실행 후 종료.
4. 조건식2가 false면 자바스크립트 코드3을 실행 후 종료.
값이 true나 false가나오는 식은 다 조건식이다.
*삼항조건연산자는 if 조건문보다 간단하게 작성할 수있지만 코드를 2줄이상 작성할 수없다.