저장을 습관화

논리연산자 !와 연산자 +의 사용법 메모 본문

공부/JavaScript

논리연산자 !와 연산자 +의 사용법 메모

ctrs 2023. 9. 10. 17:43

!는 논리 not 연산자이다.

true를 false로, false를 true로 바꾼다

 

+는 더하기 연산자이다.

+를 형변환하는데 쓴다면

양 옆에 있는 두 피연산자 중 하나가 문자열일때 덧셈의 결과를 문자열로 바꿀수도 있지만

다른 데이터 유형을 숫자로 형변환하는데도 쓸 수 잇다.
예시)

let num = "42";
console.log(+num); // 42
console.log(typeof +num); // number

let str = "Hello";
console.log(+str); // NaN
console.log(typeof +str); // number

 

둘을 응용한 +!의 사용 방법

아래와 같은 코드가 있다.

function solution(number, n, m) {
  return +!(number % n || number % m);
}

함수 solution는 매개변수 number, n, m을 받아와

number가 n과 m으로 모두 나누어 떨어질때 1, 아니라면 0을 리턴하는 기능이다.

 

(number % n || number % m) 계산을 했을때 결과가 (0 || 0)이 된다면

아래와 같은 흐름이 된다.

console.log(0 || 0); // 0
// 0은 falsy한 값이니
// (0 || 0)은 (false || false)와 동일하며, 이는 false이다.

// !를 붙여 값을 부정한다.
console.log(!(0 || 0)); // true

// +를 붙여 true를 숫자형태로 변환한다.
// 1은 truthy한 값이니 true는 1이 된다.
console.log(+!(0 || 0)); // 1

 

아래의 흐름과 동일하다

console.log(false || false); // false

console.log(!(false || false)); // true

console.log(+!(false || false)); // 1

 

[참조]

https://ctrs.tistory.com/228

 

프로그래머스 LV.0 공배수

프로그래머스 LV.0 공배수 https://school.programmers.co.kr/learn/courses/30/lessons/181936 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고,

ctrs.tistory.com