-
연산자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