TIL: 12일차 "연산자"

mong-byte·2021년 4월 16일
0

자바스크립트에 변수와 데이터 타입에 대해 알게 되었다면, 어제 잠깐 이야기가 나왔던 연산자에 대해 이야기를 해 보려고 한다. 연산자란 데이터를 사용해서 덧셈,뺄셈등의 연산을 가능하게 만드는 요소를 의미한다.

연산자에는

  • 산술연산자
  • 할당연산자
  • 논리연산자
  • 비교연산자
  • 문자열 연산자
  • 비트연산자
  • 삼항연산자
  • 쉼표연산자
  • 단항연산자
  • 관계연산자
  • 등의 많은 연산자가 있다.
    하나씩 알아보도록 하자

    산술연산자

    산술연산자는 우리가 잘 아는 사칙연산(+,-,*,/)이 존재하고, 주로 숫자와 숫자의 연산을 행하는 연산자이다.
    이외에 산술연산자로는

  • % : 두 인자를 나눈 후,나머지를 반환하는 나머지 연산자
  • ++,-- : 피연산자에 1을 더하거나 빼서 반환하는 증감연산자
  • +,- : 피연산자 앞에서 양수,음수를 결정하는 연산자
  • 가 존재한다.

    할당연산자

    할당연산자는 오른쪽 피연산자의 값을 왼쪽 피연산자에 할당하는 연산자로, =로 표시된다.

    x = y

    에서 =가 할당연산자이고, 오른쪽의 y의 값이 x로 할당 되는것이다. 이 할당연산자는 위의 산술연산자와 합쳐서 사용할 수 있다. 예를 들면,

    x += y 

    라 표기하면

    x = x + y

    와 같은 의미가 되는것이다.

    논리연산자

    논리연산자는 해당 피연산자간의 논리관계를 나타내는 연산자이다. 말이 어렵기에 예를 들자면,

    1. a && b
    2. a || b
    3. !a

    위의 표기에서 1은 a와 b 둘다 참이어야 true이고(and),
    2는 a와 b 둘중의 하나라도 참이면 true(or) 3은 true로 변환이 가능하면 fales 아니면 true라 정의 되어 있지만, 간단하게 말해서 a가 아닐때 라고 이해하면 좋을것 같다.

    비교연산자

    비교연산자는 오른쪽과 왼쪽의 피연산자를 비교하기 위한 연산자로, =는 할당연산자이기 때문에 별도의 표기를 사용한다.
    보통 a와 b의 값이 동등하다 라고 표기할땐 a==b로 나타낸다.
    하지만 a와 b의 값이 일치하지 않을 경우에도 true를 반환하기에 주의가 필요하다.
    이게 어떤 이야기냐 함은,

    1 == "1"
    1 == 1

    위의 두 사례 모두 결과는 true이다. 문자열과 숫자를 비교할때도 값이 '동등'하기에 true가 되는것이다.
    당연히 문자열과 숫자는 같지 않기에, 이는 나중에 문제가 될 수 있다. 그렇다면 어떻게 일치관계를 설명해야 할까?
    자바 스크립트에서는 ===를 사용하여 일치를 판단한다.

    1 === "1"
    1 === 1

    에서 첫번째 사례는 false, 두번째 사례는 true를 반환한다.
    즉, 데이터타입까지 완벽하게 일치하지 않으면 false라는 결과를 가진다는것이다. 실제 프로그래밍에선 ===를 더 많이 사용한다.

    문자열 연산자

    문자열 연산자는 문자열 파트에서도 나왔듯이, +를 사용한다.
    문자열과 문자열 사이에 +를 넣어서 두 문자열을 하나로 만드는 연산자이며, 이는 앞서 다룬적이 있기에 넘어가도록 하겠다.

    비트연산자

    비트연산자는 10진수,8진수,12진수등이 아니라 32진수 비트의 집합을 대상으로 연산하기 위한 연산자이지만, 현재는 어려운 개념이기에 추후에 다루기로 하겠다.

    삼항연산자

    삼항연산자는 3개의 항을 사용하는 유일한 연산자로, 조건을 걸어서 true일때와 false의 값을 반환한다. 추후에 다룰 if문(조건문)의 미니버전이라 생각하도록 하자.
    표기법은

    x < 10 ? "ok" : "no"

    와 같이 나타내며, 위의 식을 해설하자면 x가 10보다 크면 "ok"
    작다면 "no"를 반환하는 방식이다.

    쉼표연산자

    쉼표연산자는 MDN의 설명을 빌리자면,

    쉼표로 나눈 요소를 왼쪽에서 오른쪽으로 평가 후 맨 마지막 요소를 반환 한다

    라 적혀있다. 이것만으로는 무슨 말인지 잘 모르기에, 예시를 보자면,

    let x = (3,5);
    console.log(x); // 5가 출력

    되는 방식으로, 마지막 요소를 반환하는 연산자라고 생각하면 되겠다.쉼표연산자는 후에 나올 조건문을 응용해서 두개의 명령문을 하나로 바꾸는것도 가능한 연산자이다.

    단항연산자

    단항연산자는 오직 하나의 피연산자만으로 연산하는 연산자로서, 해당 피연산요소를 삭제하는 delete와 해당 연산요소의 타입을 판별하는 typeof, 그리고 값을 반환하지 않고 그대로 평가하는 void가 단항연산자에 해당된다.

    관계연산자

    관계연산자는 피연산자들을 비교하고 Boolean 값을 반환한다. 그중, in은 해당 요소가 피연산요소의 안에 존재하는 경우 true를 반환한다. 보통 배열 혹은 객체가 피연산요소가 된다.
    instanceof라는 연산자도 있으나, 아직 어려운 내용이기에 추후에 다루기로 하겠다.

    여기까지가 연산자에 해당 되는 내용이다.
    내용이 적지 않지만, 앞으로도 길게 사용될 내용이므로 숙지하록 하고, 더 많은 정보가 필요하다면 MDN 혹은 구글에서 검색하여 사용하도록 하자

    관심 있을 만한 포스트

    0개의 댓글