수업/└JavaScript
연산자_비교, 논리, 조건, 대입
onlyun
2022. 1. 5. 11:03
1. 비교 연산자 ★★★
두 피연산자의 값을 비교하여 참(true) 또는 거짓(flase) 값을 반환
> | >= | < | <= |
크다 | 크거나 같다 | 작다 | 작거나 같다 |
== | === | != | !== |
같다 | 값과 데이터형 모두 같다 | 같지 않다 | 값과 데이터형 모두 같지 않다 |
근데
자바에서 데이터형이 다른 숫자와 문자열을 요령있게? 처리해줘서
ex) 5 == '5' 전자는 숫자고 후자는 문자라 다른데 자바에서 요령있게 처리.
===, !== 연산자 등장.
=== : 값과 데이터형이 모두 같냐? 같으면 true, 다르면 false.
!== : 값과 데이터형이 다르냐? 다르면 true, 같으면 false.
예제)
-코드
<script>
let a = 7;
let b = 5;
document.write('a > b : ' + (a > b) + '<br>');
document.write('a < b : ' + (a < b) + '<br>');
document.write('a == b : ' + (a == b) + '<br>');
document.write('a != b : ' + (a != b) + '<br>');
document.write('!(a != b) : ' + !(a != b) + '<br>');
document.write("(5 == '5') : " + (5 == '5') + '<br>');
document.write("(5 === '5') : " + (5 === '5') + '<br>');
document.write("(5 != '5') : " + (5 != '5') + '<br>');
document.write("(5 !== '5') : " + (5 !== '5') + '<br>');
document.write('-----------<br>');
let id='user';
let pw='1234';
let loginSuccess=(id=='user1') && (pw=='1234'); //변수 선언까지 함께
document.write('loginSuccess : '+loginSuccess+'<br/>');
document.write('-----------<br>');
let level='과장';
let enter=(level=='대리')||(level=='과장')||(level=='팀장');
document.write('enter : '+enter+'<br/>');
</script>
-출력값
2. 논리 연산자 ★★
&& | || | !( ) |
연산의 대상이 되는 논리값 둘다 true일 때 결과 true |
연산의 대상이 되는 논리값 하나라도 true면 결과 true |
논리 부정 |
로그인 같은 상황 id, pw 모두 true |
사용자 권한 제한 상황 |
*비트 논리 연산자(skip) : 특별한 연산을 할 때만 쓰는 거라서
-예제)
-소스 코드
<script>
// && 연산자(논리곱)
let id='user';
let pw='1234'; //id가 거짓이므로 pw 계산하지 않음. 최소한의 과정으로 동작.
let loginSuccess=(id=='user1') && (pw=='1234'); //변수 선언까지 함께
document.write('loginSuccess : '+loginSuccess+'<br/>');
document.write('-----------<br>');
// || 연산자(논리합)
let level='과장';
let enter=(level=='대리')||(level=='과장')||(level=='팀장');
document.write('enter : '+enter+'<br/>');
</script>
-출력값
3. 조건 연산자
조건식 판별하여 선택적 실행
(1) 삼항연산자
변수 = (조건식) ? (참일때 실행문) : (거짓일때 실행문);
조건식에는 비교 연산자 사용.
예제)
-소스 코드
<script>
let x=5;
let y=7;
let result; // 변수 선언
result=(x > y)? x : y;
document.write("큰 값 : " + result + "<br>");
</script>
-결과
큰 값 : 7 |
(2) 복합(확장)대입연산자
<script>
let str='Hello';
str = str + ' my';
str = str + ' friend~';
document.write('str의 값은? '+ str + '<br/>');
// 위의 것을 축약
str = 'hello ';
str += 'my ';
str += 'friend!! ';
document.write('str의 값은? '+ str + '<br/>');
</script>
-결과
str의 값은? Hello my friend~ |
str의 값은? Hello my friend!! |
참고)
<script>
a=10;
a++;
document.write('a 값은 '+a+'<br/>');
a+1; //출력값 11. ??왜?? 위에서 a++ 증가연산했지만 대입 안 해줘서 참조 안 함.
document.write('a 값은 '+a+'<br/>');
a=a+1; //11인 a에 1을 증가하고 그 값을 a에 대입.
document.write('a 값은 '+a+'<br/>');
// 윗 문장과 같음. (a+=1;) == (a=a+1;)
</script>
-결과
a 값은 11 a 값은 11 a 값은 12 |
4. 대입 연산자
'=' 기호를 사용하여 값이나 변수 할당
<script>
var x1=x2=x3=x4=x5=10;
var st="Hello ";
x1+=1;
document.write("x1 : " + x1 + "<br>");
x2-=2;
document.write("x2 : " + x2 + "<br>");
x3*=3;
document.write("x3 : " + x3 + "<br>");
x4/=4;
document.write("x4 : " + x4 + "<br>");
x5%=5;
document.write("x5 : " + x5 + "<br>");
st+="Javascript";
document.write("st : " + st + "<br>");
</script>
-결과