연산자와 단축평가

yeonhwan619·2022년 8월 23일

기록) JS 기초

목록 보기
4/10

연산자를 통해 값과 변수를 연산하고 평가하여 사용한다.

• 연산자

하나 이상의 표현식(값)을 대상으로 다양한 연산을 실행하는 키워드

1 ) 산술연산자

피연산자를 대상으로 수학적 연산을 실행한다.

이항산술연산자 ( + , - , * , /, % )

사칙연산 연산자로 순서대로 덧셈, 뺄셈, 곱셈, 나눗셈, 모듈러연산(나머지)을 수행한다.

단항산술연산자 ( ++, -- )

  • ++ : 피연산자의 값을 1을 증가시킨 뒤, 재할당한다.
  • -- : 피연산자의 값을 1을 감소시킨 뒤, 재할당한다.

단항산술연산자는 연산자의 위치가 중요한데, 연산자가 피연산자의 앞에 올 경우
즉시, 변수에 재할당이 이루어진다. 연산자가 피연산자의 뒤에 올 경우 다음 실행되는 코드문에서 재할당이 이루어진다.

let a = 1;
console.log(++a); // 2
console.log(a++); // 2
console.log(a); // 3

문자열 연결 연산자 ( + )

' + ' 연산자는 만약 피연산자들중 하나 이상이 문자열일 경우 하나의 문자열로 통합한다. 그렇지 않을 경우 산술연산(덧셈)을 수행한다.

할당 연산자 (= ,+=, -=, *=, /=, %=)

  • = : 우항에 있는 표현식을 좌항에 있는 변수에 할당한다.
  • += : 좌항에 존재하는 변수 값에 우항에 있는 표현식을 더한 뒤 다시 좌항의 변수에 재할당한다.
  • -= : 좌항에 존재하는 변수 값에 우항에 있는 표현식을 뺀 뒤 다시 좌항의 변수에 재할당한다.
  • *= : 좌항에 존재하는 변수 값에 우항에 있는 표현식을 곱한 뒤 다시 좌항의 변수에 재할당한다.
  • /= : 좌항에 존재하는 변수 값에 우항에 있는 표현식을 나눈 뒤 다시 좌항의 변수에 재할당한다.
  • %= : 좌항에 존재하는 변수 값에 우항에 있는 표현식을 모듈러연산 한 뒤 다시 좌항의 변수에 재할당한다.
let a = 6;
a += 5; // a = 11;
a -= 4; // a = 7;
a *= 3; // a = 21;
a /= 4; // a = 5.25;
a %= 5; // a = 0.25;

비교연산자(==, ===, !=, !==)

  • == : 값이 동일하다 (값만 같으면 같음)
  • === : 타입과 값이 모두 동일하다 (타입과 값이 모두 같아야 함)
  • != : 값이 동일하지 않다. (값이 같지 않다)
  • !== : 타입과 값이 모두 동일하지 않다.

⚐ NaN은 자기 자신과 같지 않은 유일한 값이다. (NaN은 하나의 값으로 다른 다양한 NaN값을 모두 대표하기 때문이다. NaN은 값의 속성을 의미한다.)

⚐ 객체타입의 값 자체는 비교대상이 될 수 없으며, 비교할 경우 반드시 false를 반환한다. 객체타입의 특성상 데이터가 존재하는 메모리 주소 값이 다르기 때문이다. 객체 비교를 위해서는 객체자체를 문자열로 치환하여 확인해야한다.

논리연산자(&&, ||, !)

  • && : 논리곱, 좌항의 피연산자와 우항의 피연산자를 모두 판단했을 때 true 값이어야 한다. 하나라도 false일 경우 false 값으로 평가된다.
  • || : 논리합, 좌항의 피연산자와 우항의 피연산자 둘 중 하나라도 true 일경우 true 값으로 평가된다.
  • ! : 부정, 피연산자의 boolean 값을 반전시킨다.

참조) Javascript DeepDive

profile

0개의 댓글