남고생들의 소소한 개발 일지
[js]조건문(2) 본문
논리연산자란 조건문을 좀 더 간결하고 다양한 방법으로 구현할 수 있도록 도와주는 연산자라고 한다.
and 연산자
and(&&)연산자란 두 항 모두가 true일때 참이 된다.


=참
두 항이 true여야 참이 나온다.


두 항이 다르거나 두 항 모두 false라면 페이지 내용이 나오지 않는다.
앞 글 조건문(1)에 있는 prompt 예제처럼 (https://aco-study.tistory.com/20)

코드 실행 시

이렇게 페이지가 나온다. if문에 넣어준 조건들을 입력하면

참인 값인 반갑습니다.라는 문구가 나오고 if문에 넣어준 조건들을 입력하지 않는다면

false값인 일치하지 않는다는 문구가 나온다.
조건문 안에 더 많은 &&연산자를 사용할 수 있다.
or연산자
or(||)연산자란 두 항 중 하나라도 true가 있다면 true가 나오는 논리 연산자이다.

이렇게 or연산자 코드를 만들었다.
id값을 'delli','user','root' 중 하나를 입력하면 true가 출력된다.

id값 중 하나를 입력해보았습니다.

true인 인증되었다는 내용이 나온다.
하지만 id값 중 없는 값을 넣으면


이렇게 false값이 나온다.
이제 앞에 &&연산자와 ||연산자를 응용해보자.

이렇게 or연산자와 and연산자를 응용해보았다. 이렇게 한다면 어떤 결과가 나올까.
먼저 id값을 root로 입력하여 조건문에 있는 pw으로 입력해보았다.

이렇게 id에 조건값을 걸어논 id를 아무거나 적고 pw도 적혀있는 조건값을 적는다면 false가 나지 않는다.
하지만 &&연산자가 있으므로 id값이나pw값 중 선언하지 않은 값을 적는다면 false가 나온다.
not 연산자
'!'는 부정의 의미로, Boolean 값을 역전시킨다. true를 false로 바꾸고 false를 true로 바꾸는 연산자이다.

이렇게 true앞에 '!'를 입력하게 된다면 !는 반대로 값이 나오기 때문에 false가 된다. 그래서
페이지 창엔 아무것도 나오지 않는다. 하지만 true를 반대로 적으면


true가 되면서 페이지 창엔 'hi'가 나온다.
false 하나를 true로 바꾸면 어떻게 나올까.
페이지 창엔 아무것도 나오지 않는다. 왜냐 &&연산자로 좌항은!true은 false가 되고 !false은 true가 되었기 때문에 false가 된다.
Bloolean의 대체
true
if(0){
alert(1);
}
=false
if(1){
alert(1);
}
=true
왜 true값이 되냐, 숫자 0을 제외한 모든 수를 true 간주되기 때문에 true값이 나온다.
false
if(' '){
alert('빈문자열');
}
=false
빈문자열인 경우 false로 간주한다. 조건문에 문자열일땐 true가 출력된다.
if(undefined){
alert('undefined');
}
=false
undefined는 자바스크립트에서 false로 간주한다.
if(null){
alert('null');
}
if(NaN){
alert('NaN');
}
역시
=false이다
자바스크립트에선 false로 간주하기 때문이다.
대체에 대해 더 궁금하다면
https://dorey.github.io/JavaScript-Equality-Table/
JS Comparison Table
=== (negated: !==) When using three equals signs for JavaScript equality testing, everything is as is. Nothing gets converted before being evaluated.
dorey.github.io
이 페이지에 가서 더 학습하는 것이 좋을 것 같다.
'프로그래밍 > JavaScript' 카테고리의 다른 글
| [JS] 반복문 (2) (0) | 2019.10.06 |
|---|---|
| [JS] 반복문 (0) | 2019.10.06 |
| [JS] 조건문(1) (0) | 2019.10.03 |
| [JS] 줄바꿈과 여백, 비교 (0) | 2019.10.02 |
| [JS]변수,주석 (0) | 2019.10.01 |