연산자에는 피연산자의 개수에 따라 단항 연산자, 이항 연산자, 삼항 연산자로 분류합니다.
단항 연산자 - +a
이항 연산자 - a + b
삼항 연산자 - ?: (Only 이것만 존재)
그룹 연산자 () - 그룹 연산자 ()를 사용하게 되면 계산 순서의 우선 순위가 최우선으로 연산 됩니다.
산술 연산자
산술 연산자는 피연산자가 숫자인 연산자로 피연산자가 숫자가 아닐 때는 연산자가 피연산자 타입을 숫자 타입으로 바꾸어 계산합니다. 이때, 연산 결과로는 숫자 값이 나오지만 숫자로 바꿀 수 없거나 계산할 수 없는 값일 경우에 NaN이 출력됩니다.
<산술 이항 연산자>
+ : 더하기 / A + B / A와 B를 더한 값
- : 빼기 / A - B / A와 B를 뺀 값
* : 곱하기 / A * B / A와 B를 곱한 값
/ : 나누기 / A / B / A와 B를 나눈 값
% : 나머지 / A % B / A와 B를 나눈 나머지 값
<산술 이항 연산자 주의사항>
1. 정수끼리 나누어도 결과가 부동소수점이 된다.
2. 나머지 연산자 %의 피연산자는 부동소수점이다.
3. + 연산자는 피연산자 중 하나가 문자열이면 나머지 피연산자를 문자열로 만든다.
4. 계산할 수 없는 경우에는 NaN으로 평가합니다. 또한 산술 연산자의 피연산자가 true이면 1, false와 null이면 0으로 출력합니다.
<산술 단항 연산자>
++ : 증가 연산자 => ++a : a에 1을 더한 다음에 a값을 평가 / a++ : a를 평가한 다음 a에 1을 더한다
-- : 감소 연산자 => --a : a에 1을 뺀 다ㅡㅁ에 a 값을 평가 / a-- : a를 평가한 다음 a에서 1을 뺀다
+ : 아무것도 처리하지 않음 => +a / a와 같은 값으로 평가한다
- : 부호 반전 => -a / a의 부호를 반전한 값으로 평가한다
<산술 대입 연산자>
+= / a +=b / a = a + b
-= / a -= b / a = a - b
*= / a *=b / a = a*b
/= / a /=b / a = a / b
%= / a %= b / a = a%b
문자열 제어하기
1) + 연산자는 피연산자가 모두 문자열이면 문자열로 연결합니다.
2) 피연산 중 하나가 문자열 또는 문자열로 변환할 수 있는 객체라면 다른 피연산자의 타입을 문자열로 바꾼 다음 연결합니다.
문자열을 연결하는 방법을 활용하면 변수 값을 문자열로 꾸며 표시할 수 있습니다.
문자열로 작성하고 나서 문자열의 길이와 인덱스를 출력할 수 있습니다.
관계 연산자
== / 값이 같음 / a == b / a값과 b 값이 같으면 true, 그 외에는 false
!= / 값이 다름 / a != b / a값과 b 값이 다르면 true, 그 외에는 false
=== / 값과 타입이 같음 / a === b / a와 b의 값과 타입이 같으면 true, 그 외에는 false
!== / 값과 타입이 다름 / a !== b / a와 b의 값과 타입이 다르면 true, 그 외에는 false
< / 작음 / a < b / a 값이 b 값보다 작으면 true, 그 외에는 false
> / 큼 / a > b / a 값이 b 값보다 크면 true, 그 외에는 false
<= / 작거나 같음 / a <= b / a 값이 b 값보다 작거나 같으면 true, 그 외에는 false
>= / 크거나 같음 / a >= b / a 값이 b 값보다 크거나 같으면 true, 그 외에는 false
동일 연산자(==) : 좌변과 우변의 피연산자가 같은지만 판별합니다. 비교할 대상의 타입이 서로 다른 경우 같은 타입으로 변경하여 결과값만 비교합니다.
일치 연산자(===) : 좌변과 우변의 피연산자를 평가한 후에 타입을 변환하지 않은 상태의 두 값을 엄격하게 비교합니다. 타입과 값이 모두 같으면 같다고 판정하고 하나라도 다를 경우 같지 않다고 판정합니다. 단, NaN은 NaN을 포함한 모든 값과 같지 않다고 판정합니다.
논리 연산자
&& | 논리 곱 | a && b | a와 b가 모두 true면 true, 그 외에는 false
|| | 논리 합 | a || b | a와 b 중 하나라도 true면 true, 모두가 false면 false
! | 부정 | !a | a와 true면 false, false면 true
피연산자 | 평가되는 값 | ||
0, -0, 빈 문자열(""), NaN, null, undefined | false | ||
0을 제외한 숫자, 빈 문자열을 제외한 문자열, 모든 객체, 심벌 | true |
논리 곱 연산자와 논리 합 연산자는 단락 평가를 합니다. 단락 평가란 첫 번째 피연산자 값이 표현식을 결정하게 되면 뒤에 있는 피연산자를 평가하지 않는 것을 말합니다.
기타 연산자
typeof 연산자 : 단항 연산자이며 피연산자의 데이터 타입을 뜻하는 문자열을 반환
조건 연산자(?:) : 주어진 조건의 참과 거짓에 따라 값을 선택
이때, a가 짝수일 때는 "짝수"가 되고 그렇지 않을 경우에는 "홀수"가 출력이 됩니다.
쉼표 연산자(,) : 이항 연산자로 왼쪽 피연산자를 평가하고 오른쪽 피연산자를 평가한 이후에 마지막으로 오른쪽 끝 피연산자의 값을 반환합니다. 이를 활용하여 여러 문장을 한 문장으로 표현할 수 있습니다.