[JavaScript] 7. 논리 연산자

Eden·2022년 9월 11일
0

Javascript

목록 보기
25/33
post-thumbnail

boolean 값은 논리식을 다룰 때 많이 사용한다!

“10은 5보다 크고, 6은 8보다 작다” 라는 문장은 참일까요, 거짓일까? 그리고 이 문장을 자바스크립트로 어떻게 표현할 수 있을까? 10 > 5 와 6 < 8 은 바로 알 수 있는데, 그 사이의 연결고리를 표현할 수 있다.

//&&연산자
10 > 5 && 6 < 8;
>true

&& 연산자는 좌측 식과 우측 식 모두 true여야 결과도 true가 된다.

//||연산자
10 < 5 || 6 < 8;
>true

10 < 5 || 6 > 8;
>false

|| 연산자는 한쪽 식의 값만 true여도 결과가 true이다. 양쪽의 식이 모두 false여야 false가 된다.

참을 거짓으로, 거짓을 참으로 만들어주는 연산자도 있다. ! 연산자다. 식 앞에 !를 붙이면 참인 값은 false 가 되고, 거짓인 값은 true 가 된다.

!true;
>false

!false;
>true

이 성질을 활용해 다른 자료형을 boolean값으로 형 변환 할수도 있다. ! 연산자를 연달아 두 번 쓰면 되는데, 두 번 연달아 썼기 때문에 참인 값은 참에서 거짓으로, 다시 거짓에서 참으로 변환된다. 거짓인 값은 거짓에서 참으로, 참에서 거짓으로 변환된다…

!!'a';
>true

대부분의 값은 boolean 값으로 형 변환했을 때 true 가 된다. 하지만 false 가 되는 값이 있는데 이 부분만 외워주면 된다. 나머지는 true니까..

!!false
>false

!!''
>false

!!0
>false

!!NaN
>false
//형 변환을 했을때 false가 되는 값 외웁시다.
false

''

0

NaN

undefined

null

이렇게 형 변환 후 false가 되는 값을 거짓인 값(falsy value), true가 되는 값들은 참인 값(truthy value)라고 한다.

논리 연산자 우선순위

!(2 < 0);
>true
//0이 2보다 큰 것은 false고 !false가 되므로 true

!2 < 0;
>false
//2는 true고 !2는 false 0이 false기 때문에 false < false는 틀려서 false

! 연산자의 우선순위가 < 연산자보다 높다. 따라서 소괄호가 있으면 소괄호부터 계산된다.

*1분 퀴즈

다음 연산의 결과가 true가 되게 만들어봐! 연산자 추가와 수정만 가능! 답이 여러 개 있다.

5 + 4 * 3 === 27;

//(5 + 4) * 3 === 27;
//!(5 + 4 * 3 === 27);
//5 + 4 * 3 !== 27;
//5 + 4 * 3 < 27;

이 외에도 정답이 더 있다고 함다..

profile
one part.

0개의 댓글