[JavaScript] - 논리연산자

녕이·2022년 11월 21일
0

Learned

목록 보기
3/7

🎈 논리연산자

|| OR

:여러개 중 하나라도 true면 true
즉, 모든값이 false일때만 false를 반환

&& AND

:모든값이 true면 true
즉, 하나라도 false면 false를 반환

(단, age가 10이거나 이름이 'Mike'가 아니라면)👇🏻

! NOT

true면 false
false면 true
즉, true와 false를 반대값으로 바꿔줌

ex)스티븐 잡스는 한국인 이거나(OR),남자이다.
👉🏻 true(둘중하나라도 true이기때문)
ex)스티븐 잡스는 한국인 이고(AND),남자이다.
👉🏻 false(한국인이 아니기때문에 false)

✔ OR 와 AND의 차이
OR는 첫번째 true를 발견하는 즉시 평가를 멈춤
ex)스티븐 잡스는 남자이거나(OR),한국인 이거나(OR),군인이거나(OR)...
👉🏻 true(첫번째:남자라는 정보가 true)
AND는 첫번째 false를 발견하는 즉시 평가를 멈춤
ex) 스티븐 잡스는 남자이고(AND),한국인 이며(AND),군인인 동시에(AND)...
👉🏻 false(한국인이라는 정보가 false)

📝Tip
ex) 운전면허가 있고 시력이 좋은 여군인 사람을 작성할때
운전면허:80 시력좋은60 여군7 👈🏻 전체비율
작성: 여군인데 시력이 좋고 운전면허가 있는 사람 👉🏻 성능에 최적화

✔ 비교연산자에도 우선순위가 있다
ex)성별이 남자이고, 이름이 Mike이거나 성인이면 '통과', 아니면 '돌아가'

이유 : AND가 OR보다 우선순위가 높기때문에 먼저 평가됨(원하는 의도X)

if(gender === 'M' && name === 'Mike' || isAdult)
👉🏻((gender === 'M' && name === 'Mike') || isAdult){
console.log('통과')
} else{
console.log('돌아가')
} 

✍🏻의도대로 작성한다면
: 남자이고, 동시에 이름이 'Mike'이거나 성인

if(gender === 'M' && (name === 'Mike' || isAdult)){
console.log('통과')
} else{
console.log('돌아가')
} 

profile
光而不耀 :) 퍼블리싱-ing

0개의 댓글