2021.04.05_JavaScript 논리 연산자 정리_정리노트
참고 - ko.javascript.info/logical-operators
ㅎㅇㅎㅇ 오늘은 또 자바스크립트로 돌아와쑴~!~! ㅎㅁㅎ 증맬로 기초부터 차근차근 꼼꼼히 해봅씨다.
오늘은 단순히 OR,AND,NOT 의 뜻만 아는 것이 아니라, 좀 더 정확하게 어떠한 역할을 하는 것인지, 몰랐던 것 위주로 정리.
쨋든 ㄲ 합씨다!!!!
먼저 내가 생각한 핵심 개념.
AND ( && ) , OR ( || )
이렇게 불리안형 값을 출력하게 되는 것은 기본 개념이지만, 만약 alert 로 불리안형이 아닌 다른 반환값들을 출력하면, 과연 어떤 값들이 출력될까?
둘 다 왼쪽에서부터 연산을 시작한다.
여기서
AND 는 , 첫번째 false 값을 반환하고,
OR 은 첫번째 true 값을 반환한다.
말그대로
각 값을 불리안형으로 나타내면,
1,10,100 >> true
null,undefined >> false
이렇게 or 은 true 가 되는 값이 하나라도 있으면, 왼쪽부터 가장 먼저 true 가 되는 값을 찾아서 반환하고,
and 는 왼쪽부터 가장 먼저 false 가 되는 값을 반환한다.
또한, 모두 false 가 되면 or 은 마지막 값을 출력하고, 모두 true 가 되면, and 는 마지막 값을 출력한다.
단순히 and, or 을 true, false 의 불린형으로 판단하지 않고, 반환되는 값들을 알아두면, 여러 가지 추가 기능들을 쓸 수 있다.
첫번째로 true, false 반환 되는 값 찾기.
이렇게 or 은 nickname 이 첫번째로 ture 값이 되니까 korin 을 반환하고 alert 에 출력하고, 연산을 멈춘다.
반대로 and 는 null 이 첫번째로 false 값이 되니까, null 에서 연산을 멈추고, firstName 인 null 값을 출력한다.
또한 각각 모두 false, true 인 경우는 맨 마지막 값인 익명을 출력하게 된다.
두 번째, 단락 평가
해당 , 기능을 사용하는 이유는 기본적으로는 조건문의 대응 표현이지만, 만드는 것에 따라 여러 가지로 활용될 수 있다.
단락 평가의 동작 방식은 두 번째 피연산자가 변수할당과 같은 사이드 이펙트를 가지는 표현식일 때 명확히 볼 수 있는데,
OR 일 경우에, 왼쪽에서 false 일 경우에만, 오른쪽을 실행하기 때문에, fasle 일 때만 실행될 것이다.
여러 용도로 사용될 때, AND,OR 이든 typeError 를 발생시키지 않고, 조건에 맞는 값을 반환된다는 점에서는 장점이지만,
만약 AND 일 경우에는, 첫번째 값이 true 일 때, 두번째 값을 발생시킨다는 점에서, if 와 대응되게 간혹 사용되기도 한다.
이렇게 말이다.
이 식을 if 로 반환하게 되면,
이렇게 쓸 수 있다.
복잡한 함수나, 복잡한 코드를 변환했을 때, 어떻게 보면 코드가 좀 더 간결해 보일 수 있지만 이는 가독성을 떨어뜨리고, 하고자하는 바가 직관적으로 보이지 않으니, 연산과 관련된 것들이 아니라면, 조건문의 코드를 줄이기 위한 단락평가는 피하는 것이 좋다고 함!
다음으로 ㄱ ㄱ
NOT ( ! )
! 은 피연산자의 역 값을 반환. !! 역의 역이므로 불리안 ( Boolean ) 과 같은 역할을 한다.
우선순위
NOT ( ! ) > AND ( && ) > OR ( || )
마지막으로 예제를 보면서, 몇개를 더 정리 ㄱ ㄱ
여기서 보면 alert 의 반환값은 undefined 가 되는 것을 알 수 있고, 실행한 후 undefined 가 되어 false 로 불리안값을 반환한다.
이는 and, or 우선순위와, or 은 왼쪽에서 첫번째 true 값을 반환한다는 것을 알 수 있는 문제.
콘솔창에 간단한 로그인 구현하기
조건
아이디를 먼저 묻는 프롬프트 창이 뜬다.
아이디가 admin 이면, 비밀번호를 묻는 프롬프트 창이 뜬다.
틀린 아이디를 입력하면, '잘못된 아이디입니다' 출력
아이디를 입력하지 않거나, 빈 문자열을 넣으면, "취소되었습니다." 출력
비밀번호에 묻는 창에서 비밀번호를 'themaster'를 입력했다면 "환영합니다!"라는 메세지 출력.
틀린 비밀번호를 입력하면 '잘못된 비밀번호입니다.' 메세지 출력
빈 문자열이나 취소를 누르면, ' 취소되었습니다. ' 라는 메세지 출력
※ 참고 : 프롬프트 창에 아무것도 입력하지 않고 확인을 누르면, 빈 문자열이, 취소 or esc를 누르면 null 이 반환된다.
if 를 중첩으로 써서 헷갈릴 수 있지만, 찬찬히 풀면 할 수 있을 것!!!!! 이렇듯 논리 연산자는 조건문과 짝꿍으로 유용하게 쓰일뿐더러, 연산자를 잘 쓰면 부가 기능도 있으니 오늘 찬찬히 정리해보아쑴 ㅎㅁㅎ 오늘의 포스팅 끝끝!
'JavaScript' 카테고리의 다른 글
2021.04.14 JavaScript Object (2) | 2021.04.14 |
---|---|
2021.04.13 JavaScript 함수 (0) | 2021.04.13 |
2021.03.24 Java Script 변수 선언, 할당 (0) | 2021.03.24 |
2020.11.30 search jQuery, 기능 보안 (0) | 2020.12.01 |
2020.11.27 nav bar active 활성화 기능 (0) | 2020.11.27 |
댓글