연산자

Yeonn·2023년 8월 9일
0

JavaScript

목록 보기
9/23
post-thumbnail

🌱
연산자 : 하나 이상의 표현식을 대상으로 산술, 할당, 비교, 논리, 타입, 지수 연산 등을 수행해 하나의 값을 만듬
피연산자 : 연산의 대상 (operand ), 값으로 평가될 수 있는 표현식
피연산자 = 값 / 연산자 = 동사 ( 피연산자를 연산하여 새로운 값을 만든다, 피연산자를 연산해 새로운 값 생성 )

1. 산술연산자 ( arithmetic operator )

  • 피연산자를 대상으로 수학적 계산을 수행해 새로운 숫자 값 생성
  • 불가능한 경우 NaN 반환

1-1. 이항 산술 연산자

  • 2개의 피연산자를 산술 연산하여 숫자값 생성
  • 부수효과 없음
  • +(덧셈), -(뺄셈), *(곱셈), /(나눗셈), %(나머지)

1-2. 단항 산술 연산자

  • 1개의 피연산자를 산술 연산하여 숫자 값 생성
  • ++(증가), --(감소) → 암묵적 할당 / -(양수를 음수로, 음수를 양수로 반전)

1-3. 문자열 연결 연산자

-, +연산자는 피연산자 중 하나 이상이 문자열인 경우 문자열 연결 연산자로 동작

🌱 암묵적 타입 변환(inplicit coercion) / 타입 강제 변환(type coercion)

2. 할당연산자

  • 우항에 있는 피연산자의 평가 결과를 좌항에 있는 변수에 할당
    • =, +=, -=, *=, /=, %=

3. 비교연산자

  • 좌항과 우항의 피연산자를 비교한 다음 그 결과를 불리언 값을 반환
  • if 문이나 for 문과 같은 제어문의 조건식으로 주로 사용

1-1. 동등/일치 비교 연산자

  • 비교하는 엄격성 정도에 따라 구분 ⇒ 동등 비교 연산자 ( == ) / 일치 비교 연산자 ( === )
  • 동등 비교 연산자 ( == ) / 부동등 연산자( != ) : 암묵적 타입 변환을 통해 타입을 일치시킨 후 같은 값인지 비교
  • 일치 비교 연산자 ( === ) / 불일치 비교연산자 ( !== ) : 타입도 같고 값도 같은 경우에 한하여 true / false를 반환

📌 동등 연산자/부동등 연산자 는 예측이 어려운 결과도 있기 때문에 일치 비교 연산자/불일치 비교 연산자 사용 권장

1-2. 대소 관계 비교 연산자

  • 피연산자의 크기를 비교하여 불리언 값을 반환 ( >, <, >=, <= )

4. 삼항 조건 연산자 ( ternary operator )

  • 조건식의 평가 결과에 따라 반환할 값을 결정
  • 조건식( boolean 값으로 암묵적 타입 변환 ) ? 조건식이 true일 경우 반환할 값 : 조건식이 false일 경우 반환할 값

📌 if…else와 비슷하지만, 삼항 조건 연산자 표현식은 값처럼 사용 가능하고 if…else 문은 값처럼 사용 불가

5. 논리 연산자

  • || 논리합( OR )
  • && 논리값( AND )
  • ! 부정 ( NOT ) : 언제나 boolean 값 반환, 만약 피연산자가 불리언 값이 아닐 경우 불리언 타입으로 암묵적 타입 변환

6. 쉼표 연산자

  • 왼쪽 피연산자부터 차례대로 피연산자를 평가하고 마지막 피연산자의 평가가 끝나면 마지막 피연산자의 평가 결과 반환

7. 그룹 연산자

  • 자신의 피연산자인 표현식을 가장 면저 평가
  • 우선순위 조절, 그룹 연산자가 우선순위가 가장 높음

8. typeof 연산자

  • 피연산자의 데이터 타입을 문자열로 반환
  • string, number, boolean, undefined, symbol, object, function

🌱 null X → null 은 object를 반환
선언하지 않은 식별자 → undefined를 반환

9. 지수 연산자

  • 좌항의 피연산자를 밑(base)으로, 우항의 피연사자를 지수(exponent)로 거듭 제곱 하여 숫자 값 반환
  • Math.pow 메서드 참고
  • 이항 연산자 중 우선순위가 가장 높음

10. 그 외 연산자

  • ?. 옵셔널 체이닝 연산자
  • ?? null 병합 연산자
  • delete 프로퍼티 삭제
  • new 생성자 함수를 호출할 때 사용하여 인스턴스를 생성
  • instanceof 좌변의 객체가 우변의 생성자 함수와 연결된 인스턴스인지 판별
  • in 프로퍼티 존재 확인

✅ 옵셔널 체이닝 연산자 ( .? )
좌항의 연산자가 null 또는 undefined인 경우 undefined를 반환하고 그렇지 않으면 우항의 프로퍼티를 참조
객체를 가리키기를 기대하는 변수가 null 또는 undefined가 아닌지 확인하고 프로퍼티를 참조할 때 유용함

📌 부수 효과가 있는 연산자 : 할당 연산자 ( = ), 증가/감소 연산자 ( ++/-- ), delete 연산자

0개의 댓글