if 조건문에 비교 연산자를 사용할 수 있다.
연산자 종류
종류 | 기호 | 문법 | 의미 |
비교 연산자 | == | A==B | A와 B가 같은가? |
!= | A!=B | A와 B가 다른가? | |
=== | A===B | A와 B가 일치하는가? (type까지 고려) | |
!== | A!==B | A와 B가 일치하지 않는가? | |
>, < | A>3, A<3 | A가 3보다 큰(작은)가? | |
>=, <= | A>=3, A<=3 | A가 3보다 크거나(작거나) 같은가? | |
논리 연산자 |
&& (AND) | A&&B | A와 B가 모두 참이면 true |
|| (OR) | A||B | A와 B 중 하나가 참이면 true | |
! (NOT) | !A | A가 true면 결과는 false |
==와 ===의 차이
const stringFive = '5';
const numberFive = 5;
//type을 변경해서 검사
console.log(stringFive == numberFive) //true
console.log(stringFive != numberFive) //false
//type이 다른지 검사
console.log(stringFive === numberFive) //false
console.log(stringFive !== numberFive) //true
== 비교연산자는 안의 5는 같기 때문에 true로, === 비교연산자는 type까지 신경쓰기 때문에 false가 출력된다.
const data1 = {name: 'data'};
const data2 = {name: 'data'};
const data3 = data1;
console.log(data1 == data2) //false
console.log(data1 === data2) //false
console.log(data1 === data3) //true
date1과 date2에는 각각 다른 reference가 들어있기 때문에 false가 출력된다.
ex1. who
누구냐에 따라 다른 메시지를 반환한다.
function isOkayToDrive(who) {
if (who === "son") {
return "Nope!"
}
if (who === "mom") {
return "Good!"
}
if (who === "dad") {
return "Be careful!"
}
return "Who are you?"
}
console.log(isOkayToDrive("uncle")) //Who are you?
ex2. name, age
20살보다 적은 경우와 21살이거나 많은 경우, 각각 다른 메시지를 반환한다.
function checkAge(name, age) {
if (age < 20) {
return "Go home, " + name + "!"
}
if (age >= 21) {
return "Nice to meet you, " + name + "!"
}
}
const output1 = checkAge('Min', 21);
const output2 = checkAge('Seok', 17);
console.log(output1); //Nice to meet you, Min!
ex3. string
문자열이 동일하면 true, 동일하지 않으면(else) false를 반환한다.
function equalsHappyCoding(string) {
if (string === "MerryChristmas") {
return "true"
}
else {
return "false"
}
}
const output1 = equalsHappyCoding("Olaf")
const output2 = equalsHappyCoding("MerryChristmas")
console.log(output2); //true
ex4. even? odd?
number의 홀수와 짝수를 판별한다.
function isEven(num) {
if (num % 2 == 0) {
return "even"
}
else {
return "odd"
}
}
const output = isEven(5000);
console.log(output); //even
ex5. 논리연산자(&&)
홀수+20이상의 숫자라는 두 가지 조건을 판별한다.
function isOddAndGreaterThanTwenty(num) {
if (num % 2 !== 0 && num > 20) {
return "true"
}
else {
return "false"
}
}
const output1 = isOddAndGreaterThanTwenty(19);
const output2 = isOddAndGreaterThanTwenty(21);
console.log(output1); //false
console.log(output2); //true
ex.6 else if 조건문 순차 실행
function myFavoriteColor(color) {
if (color = "navy") {
alert("Good!")
} else if(color = "yellow") {
alert("Not good!")
} else {
alert("Whatever!")
}
}
console.log (myFavoriteColor("navy")) //Good!
ex.7 grade
점수에 따른 등급을 반환한다.
function whichGrade(score) {
if ( 90 <= score && score <= 100 ) {
return "A"
}
if ( 80 <= score && score <= 89 ) {
return "B"
}
if ( 70 <= score && score <= 79 ) {
return "C"
}
if ( 60 <= score && score <= 69 ) {
return "D"
}
if ( 0 <= score && score <= 59 ) {
return "F"
}
return "INVALID SCORE"
}
const output = whichGrade(91)
console.log(output) //A
ex.8 가위바위보
function rockScissorsPaper(player1, player2) {
if ( player1 === "rock" && (player2 === "scissors" || player2 == "rock") ) {
alert = "player1 won!"
} else if (player1 === "scissors" && (player2 === "paper" || player2 == "scissors")) {
alert = "player1 won!"
} else if (player1 === "paper" && (player2 === "rock" || player2 == "paper")) {
alert = "player1 won!"
} else {
alert = "player2 won!"
}
return alert;
}
console.log(rockScissorsPaper("rock", "paper"))
ex.9 여러 인자 사용
function formatDate(year, month, date) {
if (date) {
return year + '/' + month + '/' + date
}; if (month) {
return year + '년' + month + '월'
}; if (year) {
return year + '년'
};
}
console.log (formatDate(2023, 2, 23)) //2023/2/23
console.log (formatDate(2023, 2)) //2023년 2월
console.log (formatDate(2023)) //2023년
ex.10 address에 '○○시'가 있는 경우 제외하고 반환
function sliceCityFromAddress(address) {
let blahDo = address.indexOf("도");
let blahCity = address.indexOf("시");
if (blahCity !== -1) {
return address.slice(0, blahDo+1) + "" + address.slice(blahCity+1, address.length);
} else {
return address;
}
}
console.log (sliceCityFromAddress("경기도 성남시 분당구 대왕판교로 123")) //경기도 분당구 대왕판교로 123
'Language > JavaScript' 카테고리의 다른 글
[JavaScript] Object(객체) 추가, 수정, 삭제, 복제, 접근 (0) | 2023.07.07 |
---|---|
[JavaScript] 반복문|for문 (0) | 2023.07.06 |
[JavaScript] 배열(Array) (0) | 2023.07.05 |
[JavaScript] 함수로 숫자의 합과 문자열 갯수 구하기 (0) | 2023.07.04 |
[JavaScript] 문자열 길이 구하기 (0) | 2023.07.04 |