논리 연산자

김하은·2023년 4월 24일
0

논리연산자

  • || => OR을 의미한다
  • && => AND를 의미한다.
  • ! => NOT을 의미한다.

논리 연산자는 피연산자로 boolean형 뿐만 아니라 모든 타입의 값을 받을 수 있다.

OR연산자는 수직선 두개의 모양이다.
보통 boolean값을 조작하는데에 사용된다.

OR연산자는 피연산자들 중 하나라도 true라면 true를 반환하고, 피연산자 모두가 false일때 false를 반환한다.

피연산자가 boolean형이 아니라면 boolean형으로 변환된 후 평가가 진행된다.

falsy한 값 0, "", NaN, null, undefined 는 false로 변환되고 그 외에는 true로 변환됨

피연산자가 여러개인 경우, 각 연산자를 불린형으로 변환하며 가장 처음 나와있는 피연산자 부터 현가한다.
변환후에 그 값이 true면 연산이 멈춰지고 (앞서 말했듯 OR연산자(||)는 하나라도 true면 true를 반환하기 때문이다.), 해당 피연산자의 변환전 값을 반환한다.

피연산자가 변수인 경우도 있다.

AND(&&)연산자

피연산자들이 모두 true여야 true를 반환한다. 그렇지 않다면 모두 false를 반환한다.

피연산자가 여러개인 경우 각 연산자는 boolean형으로 변환되고 false면 평가를 멈추고 변환전 피연산자값을 반환한다.

  • &&의 우선순위가 ||보다 높다

NOT(!)연산자.

NOT연산자는 느낌표를 사용해 만들 수 있다.

이 연산자는 인수를 하나만 받고 피연산자를 boolean형으로 변환한 뒤, 이 변환된 boolean의 반대의 boolean으로 변환한다.

!true => false
!0 =>true

그럼 느낌표가 두개가 붙으면 어떻게될까?
true가 느낌표 하나가 붙으면 true가 아닌 false가 된다 .
여기에 다시 느낌표가 하나 더 붙으니 다시 true가 됨을 알 수 있다.
이렇게 NOT을 연달아 사용하면 특정값을 불린형으로 변환할 수 있다.

내장함수 Boolean으로 묶어도 !!을 사용한것과 마찬가지의 결과를 만든다.

즉, !!을 사용하면 그 값을 boolean형 true나 false로 변경하는 것이다.

0개의 댓글