Chapter3. 연산자
산술 연산자
모두 두 개의 피연산자를 갖는 이항 연산자.
피연산자의 결합 방향은 왼쪽에서 오른쪽이다.
아래는 연산자 우선순위 표다.
우선순위
연산자
설명
결합 방향
1
()
묶음(괄호)
-
2
.
멤버 접근
왼쪽에서 오른쪽으로
new
인수 있는 객체 생성
-
3
()
함수 호출
왼쪽에서 오른쪽으로
new
인수 없는 객체 생성
오른쪽에서 왼쪽으로
4
++
후위 증가 연산자
-
--
후위 감소 연산자
-
5
!
논리 NOT 연산자
오른쪽에서 왼쪽으로
~
비트 NOT 연산자
오른쪽에서 왼쪽으로
+
양의 부호 (단항 연산자)
오른쪽에서 왼쪽으로
-
음의 부호 (단항 연산자)
오른쪽에서 왼쪽으로
++
전위 증가 연산자
오른쪽에서 왼쪽으로
--
전위 감소 연산자
오른쪽에서 왼쪽으로
typeof
타입 반환
오른쪽에서 왼쪽으로
void
undefined 반환
오른쪽에서 왼쪽으로
delete
프로퍼티의 제거
오른쪽에서 왼쪽으로
6
**
거듭제곱 연산자
오른쪽에서 왼쪽으로
*
곱셈 연산자
왼쪽에서 오른쪽으로
/
나눗셈 연산자
왼쪽에서 오른쪽으로
%
나머지 연산자
왼쪽에서 오른쪽으로
7
+
덧셈 연산자 (이항 연산자)
왼쪽에서 오른쪽으로
-
뺄셈 연산자 (이항 연산자)
왼쪽에서 오른쪽으로
8
<<
비트 왼쪽 시프트 연산자
왼쪽에서 오른쪽으로
>>
부호 비트를 확장하면서 비트 오른쪽 시프트
왼쪽에서 오른쪽으로
>>>
부호 비트를 확장하지 않고 비트 오른쪽 시프트
왼쪽에서 오른쪽으로
9
<
관계 연산자(보다 작은)
왼쪽에서 오른쪽으로
<=
관계 연산자(보다 작거나 같은)
왼쪽에서 오른쪽으로
>
관계 연산자(보다 큰)
왼쪽에서 오른쪽으로
>=
관계 연산자(보다 크거나 같은)
왼쪽에서 오른쪽으로
instanceof
인스턴스 여부 판단
왼쪽에서 오른쪽으로
10
==
동등 연산자
왼쪽에서 오른쪽으로
===
일치 연산자
왼쪽에서 오른쪽으로
!=
부등 연산자
왼쪽에서 오른쪽으로
!==
불일치 연산자
왼쪽에서 오른쪽으로
11
&
비트 AND 연산자
왼쪽에서 오른쪽으로
12
^
비트 XOR 연산자
왼쪽에서 오른쪽으로
13
|
비트 OR 연산자
왼쪽에서 오른쪽으로
14
&&
논리 AND 연산자
왼쪽에서 오른쪽으로
15
||
논리 OR 연산자
왼쪽에서 오른쪽으로
16
? :
삼항 연산자
오른쪽에서 왼쪽으로
17
=
대입 연산자 (=, +=, -=, *=, /=, %=, <<=, >>=, >>>=, &=, ^=, |=)
오른쪽에서 왼쪽으로
18
...
전개
-
19
,
쉼표 연산자
왼쪽에서 오른쪽으로
대입 연산자
대입 연산자
설명
=
왼쪽 피연산자에 오른쪽 피연산자의 값을 대입함.
+=
왼쪽 피연산자의 값에 오른쪽 피연산자의 값을 더한 후, 그 결괏값을 왼쪽 피연산자에 대입함.
-=
왼쪽 피연산자의 값에서 오른쪽 피연산자의 값을 뺀 후, 그 결괏값을 왼쪽 피연산자에 대입함.
*=
왼쪽 피연산자의 값에 오른쪽 피연산자의 값을 곱한 후, 그 결괏값을 왼쪽 피연산자에 대입함.
/=
왼쪽 피연산자의 값을 오른쪽 피연산자의 값으로 나눈 후, 그 결괏값을 왼쪽 피연산자에 대입함.
%=
왼쪽 피연산자의 값을 오른쪽 피연산자의 값으로 나눈 후, 그 나머지를 왼쪽 피연산자에 대입함.
증감 연산자
증감 연산자
설명
++x
먼저 피연산자의 값을 1 증가시킨 후에 해당 연산을 진행함.
x++
먼저 해당 연산을 수행하고 나서, 피연산자의 값을 1 증가시킴.
--x
먼저 피연산자의 값을 1 감소시킨 후에 해당 연산을 진행함.
x--
먼저 해당 연산을 수행하고 나서, 피연산자의 값을 1 감소시킴.
증감 연산자의 연산 순서
피연산자의 어느 쪽에 위치하는가에 따라 연산의 순서가 다라진다.
C언어와 같으니깐 느낌적인 느낌으로 가면 된다.
비교 연산자
비교 연산자는 피연산자 사이의 상대적인 크기를 판단하여 참, 거짓을 반환한다.
비교 연산자
설명
==
왼쪽 피연산자와 오른쪽 피연산자의 값이 같으면 참을 반환함.
===
왼쪽 피연산자와 오른쪽 피연산자의 값이 같고, 같은 타입이면 참을 반환함.
!=
왼쪽 피연산자와 오른쪽 피연산자의 값이 같지 않으면 참을 반환함.
!==
왼쪽 피연산자와 오른쪽 피연산자의 값이 같지 않거나, 타입이 다르면 참을 반환함.
>
왼쪽 피연산자의 값이 오른쪽 피연산자의 값보다 크면 참을 반환함.
>=
왼쪽 피연산자의 값이 오른쪽 피연산자의 값보다 크거나 같으면 참을 반환함.
<
왼쪽 피연산자의 값이 오른쪽 피연산자의 값보다 작으면 참을 반환함.
<=
왼쪽 피연산자의 값이 오른쪽 피연산자의 값보다 작거나 같으면 참을 반환함.
동등 연산자와 일치 연산자
동등연사자(==)
두 피연산자의 값이 서로 값으면 참을 반환한다.
타입이 서로 다르면 강제로 타입을 같게 변환하고, 값ㅇ르 비교한다.
일치연산자(===)
타입의 변환 없이 두 피연산자의 값이 같고, 타입도 같아야만 참을 반환
var x = 3, y = '3', z = 3;
document.write((x == y) + "<br>"); // x와 y의 타입이 서로 다르므로 타입을 서로 같게 한 후 비교를 하므로 true
document.write((x === y) + "<br>"); // x와 y의 타입이 서로 다르므로 false
document.write(x === z); // x와 z은 값과 타입이 모두 같으므로 true
논리 연산자
논리 연산자
설명
&&
논리식이 모두 참이면 참을 반환함. (논리 AND 연산)
||
논리식 중에서 하나라도 참이면 참을 반환함. (논리 OR 연산)
!
논리식의 결과가 참이면 거짓을, 거짓이면 참을 반환함. (논리 NOT 연산)
아래는 진리표다.
A
B
A && B
A || B
!A
true
true
true
true
false
true
false
false
true
false
false
true
false
true
true
false
false
false
false
true
기타 연산자
문자열 결합 연산자
덧셈 연산자는 피연산자의 타입에 따라 두 가지 연산
둘 다 숫자면, 산술 연산
하나라도 문자열이면 문자열 결합
삼항 연산자
표현식 ? 반환1 : 반환2
delete 연산자
피연산자인 객체, 객체의 프로퍼티 또는 배열의 요소 등을 삭제해준다.
삭제를 성공하면 true, 못하면 false
var arr = [1, 2, 3]; // 배열 생성 delete arr[2]; // 배열의 원소 중 인덱스가 2인 요소를 삭제함. document.write(arr + "<br>"); // [1, 2, ] // 배열에 빈자리가 생긴 것으로 undefined 값으로 직접 설정된 것은 아님. document.write(arr[2] + "<br>"); // 배열의 요소를 삭제하는 것이지 배열의 길이까지 줄이는 것은 아님. document.write(arr.length);
typeof 연산자
타입을 리턴해줌
값
typeof 연산자의 결괏값
숫자, NaN
"number"
문자열
"string"
true, false
"boolean"
null
"object"
undefined
"undefined"
함수
"function"
함수가 아닌 객체
"object"
instanceof 연산자
피연산자인 객체가 특정 객체의 인스턴스인지 아닌지를 확인해줌
var str = new String("이것은 문자열입니다."); str instanceof Object; // true str instanceof String; // true str instanceof Array; // false str instanceof Number; // false str instanceof Boolean; // false
Was this helpful?