ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 연산자
    JavaScript/JS 2021. 7. 8. 16:43

    Operator

    • 비교 연산자

      false == '0'; // true
      false == 'false'; // false
      
      /**
       * (==) 연산자는 예측하기 어려운 결과를 만들어낸다.
       * 따라서 동등 비교 연산자는 사용하지 않는 편이 좋다.
       * 대신 일치 비교 (===) 연산자를 사용한다.
       */
      
      5 === 5; // true;
      5 === '5'; // false;
      
      /**
       * 암묵적 타입 변환을 하지 않고 값을 비교한다.
       * 즉, 값과 타입이 모두 같은 경우만 true를 반환한다.
       */
      
      NaN === NaN; // false, NaN은 자신과 일치하지 않는 유일한 값이다.
      
      // isNaN 함수는 지정한 값이 NaN인지 확인하고 그 결과를 불리언 값으로 반환
      isNaN(NaN); // true
      isNaN(10); // true
      isNaN(1 + undefined); // true
      
      // 양의 0과 음의 0의 비교. 일치 비교/동등 비교 모두 결과는 true다.
      0 === -0; // true
      0 == -0; // true
      
      // ES6에서 도입된 Object.is 메서드는 다음과 같이 예측 가능한 정확한 비교 결과를 반환한다. 그 외에는 일치 비교 연산자(===)와 동일하게 동작한다.
      -0 === +0; // true
      Object.is(-0, +0); // false
      
      NaN === NaN; // false
      Object.is(NaN, NaN); // true
    • 논리 연산자: 논리 연산자로 구성된 복잡한 표현식은 가독성이 좋지 않아 한눈애 이해하기 어려울 때가 있다. 이러한 경우 드 모르간의 법칙을 활용하면 복잡한 표현식을 좀 더 가독성 좋은 표현식으로 변환할 수 있다.

      !(x || y) === (!x && !y);
      !(x && y) === (!x || !y);
    • 지수 연산자: ES7에서 도입된 지수 연산자는 좌항의 피연산자를 베이스로, 우항의 피연산자를 지수로 거듭 제곱하여 숫자 값을 반환한다.

      2 ** 2; // 4
      2 ** 2.5; // 5.65685424949238
      2 ** 0; // 1
      2 ** -2; // 0.25
      
      // 지수 연산자가 도입되지 이전에는 Math.pow 메서드를 사용했다.
      Math.pow(2, 2); // 4
      Math.pow(2, 2.5); // 5.65685424949238
      Math.pow(2, 0); // 1
      Math.pow(2, -2); // 0.25
      
      // 지수 연산자는 Math.pow 메서드보다 가독성이 좋다.
      2 ** 2 ** 2; // 16
      Math.pow(Math.pow(2, 2), 2); // 16
      
      // 음수를 거듭제곱의 베이스로 사용해 계산하려면 다음과 같이 괄호로 묶어야 한다.
      -5 ** 2; // error
      (-5) ** 2; // 25
      
      // 지수 연산자는 할당 연산자와 함께 사용도 가능하다.
      let num = 5;
      num ** 2; // 25
      
      // 지수 연산자는 이항 연산자 중에서 우선순위가 가장 높다.
      2 * 5 ** 2; // 50

    'JavaScript > JS' 카테고리의 다른 글

    단축 평가, 옵셔널 체이닝 연산자, null 병합 연산자  (0) 2021.07.09
    지수 연산자  (0) 2021.07.08
    비교연산자(Object.is)  (0) 2021.07.08
    Types  (0) 2021.07.08
    최소한의 전역변수 사용  (0) 2018.06.12

    댓글

Designed by Tistory.