산술연산자
4칙 연산(+, -, *, /)과 나머지 값을 구하는 연산자(%)
※ 문자열과 다른 데이터 타입 간 + 연산을 하면 문자열로 연결된다.
var test = "ABC" + 123; // "ABC123"
대입연산자
특정한 상수나 변수, 또는 객체를 변수에 전달하여 저장할 때 사용한다.
연산자 | 의미 |
= | 연산자의 오른쪽 변수값을 왼쪽의 변수에 대입한다. |
+= | 연산자의 오른쪽 변수값을 왼쪽 변수에 더하면서 대입한다. |
-= | 연산자의 오른쪽 변수값을 왼쪽 변수값에서 빼면서 대입한다. |
*= | 연산자의 오른쪽 변수값을 왼쪽 변수에 곱하면서 대입한다. |
/= | 연산자의 오른쪽 변수값을 왼쪽 변수에 나누면서 대입한다. |
%= | 연산자의 오른쪽 변수값으로 왼쪽 변수를 나눈 나머지값을 구하면서 대입한다. |
비교연산자(관계 연산자)
변수나 상수의 값을 비교할 때 사용하는 연산자로, 결과는 Boolean type(true/false)이다.
연산자 | 의미 |
> | 크다. |
< | 작다. |
>= | 크거나 같다. |
<= | 작거나 같다. |
== | 피연산자들의 값이 같다. |
!= | 피연산자들의 값이 같지 않다. |
- ==, !=
equal 연산자로, 필요 시 자동 형 변환 후 비교한다.
var n1 = 10;
var n2 = "20";
console.log(n1 == n2); //n2를 숫자형으로 변환 후 비교하여 true 리턴
- ===, !==
identical 연산자로, 형 변환 없이 비교한다.
var n1 = 10;
var n2 = "10";
console.log(n1 === n2); //false
var x;
if(x === undefined){} //여기서는 === 연산자를 사용해야 함.
//x == undefined를 쓰면 null도 체크하는데, null과 undefined는 같지 않다.
논리연산자
논리 값(true/false)을 가지고 조건 연산을 하는 연산자이다.
연산자 | 의미 |
&& | and(논리곱) - 주어진 조건들이 모두 true일 때만 true |
|| | or(논리합) - 주어진 조건 중 하나라도 true이면 true |
! | not(부정) - true는 false, false는 true로 나타냄 |
※ 주의할 점
자바스크립트에서는 다른 프로그래밍 언어와 달리 논리값(true/false) 외에 다른 데이터형도 논리 연산자를 사용할 수 있다.
이는 숫자, 문자열 등이 논리값으로 자동 형 변환되기 때문에 가능한 것이다.
또한 최종적으로 리턴되는 값은 true/false가 아닌 왼쪽 혹은 오른쪽 피연산자의 최종 평가값이 리턴된다.
- 좌객체 || 우객체
좌객체가 참이면 우객체를 평가하지 않고 좌객체 값을 리턴,
좌객체가 거짓이면 우객체 값을 리턴한다.
console.log("12345" || 0); //"12345"
- 좌객체 && 우객체
좌객체가 참이면 우객체 값을 리턴,
좌객체가 거짓이면 좌객체 값을 리턴한다.
console.log("12345" && 0); // 0
- 활용 가능한 예시
1) 어떤 함수가 반드시 배열인 파라미터를 받기로 가정한 경우
function x(a){
var arr = a || [];
...
}
x();
x([1, 2]);
2) 이벤트 처리 시 IE와 다른 브라우저 간 처리 방법이 다른 경우
function eventHandle(e) {
var e = e || window.event;
..
}
eventHandle(event); //비IE 브라우저
eventHandle(); //IE
증감연산자
1씩 증가/감소시키는 연산자이다.
연산자 | 의미 |
++ | 1씩 증가시킨다. |
-- | 1씩 감소시킨다. |
이때, 증감연산자의 위치(변수 앞/뒤)에 따라 결과값이 달라진다.
연산자가 변수 앞에 붙으면 참조 전에 값을 1 증가/감소시키고,
변수 뒤에 붙으면 참조 후에 증가/감소시킨다.
3항연산자
조건을 정의하여 조건 만족 시 참값, 만족하지 못할 경우 거짓값을 리턴한다.
연산자 | 의미 |
? : | 조건식 ? 참값 : 거짓값 |
이외 연산자
연산자 | 의미 |
,(콤마) | 좌우의 식을 계속해서 실행 |
delete | 객체의 프로퍼티나 배열의 요소 삭제 |
instanceof | 객체가 지정된 클래스의 인스턴스인지 판정 |
new | 새로운 인스턴스 생성 |
typeof | 피연산자(operand)의 데이터형을 확인 |
연산자의 우선 순위
우선순위 | 연산자 |
높다 낮다 |
배열([ ]), 괄호(( )) |
증가 연산자(++), 감소 연산자(--), 단항 뺄셈(-), 반전(~), 부정(!) | |
곱셈(*), 나눗셈(/), 나머지(%) | |
더하기(+), 뺄셈(-), 문자열 결함(+) | |
쉬프트(<<, >>, <<<) | |
등가(==), 부등가(!=), 등치(===), 비등치(!==) | |
AND(&) | |
XOR(^) | |
OR(|) | |
논리AND(&&) | |
논리OR( || ) | |
조건( ? : ) | |
대입(=), 복합 대입(+=, -= 등) | |
콤마(,) |
'프로그래밍 > JavaScript' 카테고리의 다른 글
[JavaScript] DOM 및 Form 객체 (0) | 2020.09.13 |
---|---|
[JavaScript] 함수 (0) | 2020.09.13 |
[JavaScript] 문장(Statement) (0) | 2020.09.13 |
[JavaScript] 식별자와 데이터형 (0) | 2020.09.08 |
[JavaScript] JavaScript 개요 (0) | 2020.09.08 |
댓글