연산자

heejung·2022년 3월 16일
0

deep dive

목록 보기
5/20

산술 연산자


이항 산술 연산자

  • 2개의 피연산자를 산술 연산
  • 피연산자의 값 변경X, 새로운 값 생성
연산자의미
+덧셈
-뺄셈
*곱셈
/나눗셈
%나머지

단항 산술 연산자

  • 1개의 피연산자를 산술 연산
연산자의미
++증가피연산자의 값 변경
--감소피연산자의 값 변경
+피연산자에 어떠한 효과도 없음- 숫자 타입 아닌 피연산자에 사용 => 숫자 타입으로 변환
- 피연산자 중 하나 이상 문자열 => 문자열 연결 연산자로 동작
-양수를 음수로, 음수를 양수로 반환

증가/감소(++/--) 연산자

var x = 1;

x++; // x = x + 1;
console.log(x); // 2

x--; // x = x - 1;
console.log(x); // 1
  • 전위 증가/감소 연산자 : 먼저 피연산자의 값을 증가/감소시킨 후, 다른 연산 수행
  • 후위 증가/감소 연산자 : 먼저 다른 연산 수행 후, 피연산자의 값을 증가/감소
var x = 5, result;

result = x++;
console.log(result, x); // 5 6

result = ++x;
console.log(result, x); // 7 7

result = x--;
console.log(result, x); // 7 6

result = --x;
console.log(result, x); // 5 5

할당 연산자


연산자동일 표현
=x = 5x = 5
+=x += 5x = x + 5
-=x -= 5x = x - 5
*=x *= 5x = x * 5
/=x /= 5x = x / 5
%=x %= 5x = x % 5

비교 연산자


  • 좌항, 우항의 피연산자 비교 후 결과를 불리언 값으로 반환

동등/일치 비교 연산자

연산자예시설명
==x == yx와 y의 값이 같음
===x === yx와 y의 값과 타입이 같음
!=x != yx와 y의 값이 다름
!==x !== yx와 y의 값과 타입이 다름

대소 관계 비교 연산자

연산자예시설명
>x > yx가 y보다 크다
<x < yx가 y보다 작다
>=x >= yx가 y보다 크거나 같다
<=x <= yx가 y보다 작거나 같다

삼항 조건 연산자


조건식 ? true일 때 반환할 값 : false일 때 반환할 값

// score >= 60 이상이면 pass 반환, 아니면 fail 반환
var result = score >= 60 ? 'pass' : 'fail';
  • if ... else 문을 사용하면 유사하게 처리할 수 있음
  • 삼항 조건 연산자 표현식은 값으로 사용 가능
  • 조건에 따라 어떤 값을 결정 => if ... else 문보다 유리함

논리 연산자


연산자의미
||OR
&&AND
!NOT

쉼표 연산자


  • 왼쪽 피연산자부터 차례대로 평가
  • 마지막 피연산자의 평가 결과 반환
var x, y, z;

x = 1, y = 2, z = 3; // 3

그룹 연산자


  • 소괄호()로 피연산자를 감싸줌
  • 연산자의 우선순위 조절
  • 그룹 연산자의 연산자 우선순위가 가장 높음
10 * 2 + 3; // 23
10 * (2 + 3); // 50

typeof 연산자


  • 피연산자의 데이터 타입을 문자열로 반환
  • null 값을 연산할 때는 null 이 아닌 object를 반환 (자바스크립트 첫 번째 버전의 버그)
    +) null 타입을 확인할 때는 일치 연산자(===) 사용

지수 연산자


  • ES7에서 도입됨
  • Math.pow( )와 동일한 기능
2 ** 2; // 4
2 ** -2; // 0.25

// 음수를 거듭제곱의 밑으로 사용하려면 괄호로 묶어야 한다.
(-5) ** 2; // 25

// 할당 연산자와 함께 사용할 수 있다.
var num = 5;
num **= 2; // 25

그 외의 연산자


연산자의미
?.옵셔널 체이닝 연산자
??null 병합 연산자
delete프로퍼티 삭제
new생성자 함수 호출 시 인스턴스 생성
instanceof좌변의 객체가 우변의 생성자 함수와 연결된 인스턴스인지 판별
in프로퍼티 존재 확인
profile
프론트엔드 공부 기록

0개의 댓글