모든 언어에서 기초적으로 배우는 “조건문”을 공부하고 정리해보았습니다. 자바스크립트의 조건문은 비교 연산자부터 독특합니다.
비교 연산자와 조건문, 논리 연산자 순으로 포스팅 해보았습니다.
비교 연산자
동등 비교
== 또는 === 연산자를 사용합니다.
==는 값의 동등성을 비교하며, 자동으로 형 변환을 수행합니다.
===는 값과 데이터 타입의 동등성을 비교하며, 형 변환을 수행하지 않습니다.
5 == "5"; // true (동등성 비교, 값만 비교)
5 === "5"; // false (일치성 비교, 값과 타입 모두 비교)
==와 !=는 값만을 비교하므로 예상치 못한 형 변환이 발생할 수 있는 것에 주의해야 합니다.
일반적으로 ===와 !==를 사용하여 값을 비교하는 것이 권장됩니다.
4번 줄 코드와 5번 줄 코드를 보면 숫자 0과 “”빈 문자열, “0” 모두 동일한 것으로 판단하는 것을 볼 수 있습니다.
console.log(0 == []) // true
console.log("" == []) // true
console.log("0" == []) // false 문자열 0은 빈 값이 아님.
console.log(0 == "") // true
console.log(0 == "0") // true
console.log(1 == "1") // true
console.log(1 == 1.0) // true
console.log(1 == "1.0") // true
반면 데이터와 동등성을 모두 비교하는 ===은 정말 데이터 타입과 값이 모두 동일해야 true로 반환 하는 것을 확인 할 수 있습니다.
자바스크립트는 자료형이 int, float을 구분하지 않고 모두 number로 보기 때문에 1===1.0은 true인 것에 유의
console.log(0 === []) // false
console.log("" === []) // false
console.log("0" === []) // false
console.log(0 === "") // false
console.log(0 === "0") // false
console.log(1 === "1") // false
console.log(1 === 1.0) // true
console.log(1 === "1.0") // false
부등 비교
!= 또는 !== 연산자를 사용합니다.
!=는 값의 부등성을 비교하며, 자동으로 형 변환을 수행합니다.
!==는 값과 데이터 타입의 부등성을 비교하며, 형 변환을 수행하지 않습니다
console.log(10 != "10"); // false (부등성 비교, 값만 비교)
console.log(10 !== "10"); // true (일치성 비교, 값과 타입 모두 비교)
대소 관계 비교
<, >, <=, >= 연산자를 사용합니다
console.log(5 < 10); // true
console.log(7 >= 5); // true
조건문
if 문
if, else if, else 문을 사용하여 다양한 조건을 검사 할 수 있습니다.
let z = 0;
if (z > 0) {
console.log("z는 양수입니다.");
} else if (z < 0) {
console.log("z는 음수입니다.");
} else {
console.log("z는 0입니다.");
}
삼항 연산자
간단한 조건문을 한 줄로 표현할 때 사용합니다
기본적인 문법은 아래와 같습니다. 조건이 참이면 값1을 반환하고 거짓이면 값2를 반환합니다.
let result = (조건) ? 값1 : 값2;
아래와 같이 사용할 수 있습니다.
let a = 7;
let result = (a > 5) ? "a는 5보다 큽니다." : "a는 5보다 작거나 같습니다.";
console.log(result);
switch 문
다양한 경우를 처리할 때 사용하며, 각 case에 대한 일치 여부를 검사합니다.
switch는 언어마다 정말 살짝씩 달라서 사용할 때 마다 갸우뚱 하네요…
SQL의 경우 switch when then else end 형태로 사용합니다….ㅎ
let day = "Monday";
switch (day) {
case "Monday":
console.log("월요일입니다.");
break;
case "Tuesday":
console.log("화요일입니다.");
break;
default:
console.log("다른 날짜입니다.");
}
논리 연산자
다양한 조건들을 결합하여 평가할 때는 논리 연산자를 사용합니다.
주로 && (논리 AND), || (논리 OR), ! (논리 NOT) 연산자가 사용됩니다.
&&
모든 조건이 참일 때만 전체 표현식이 참이 됩니다.
if (조건1 && 조건2) {
// 조건1과 조건2가 모두 참일 때 실행되는 코드
}
||
여러 조건 중 하나만 참이라도 전체 표현식이 참이 됩니다.
if (조건1 || 조건2) {
// 조건1 또는 조건2가 참일 때 실행되는 코드
}
not 연산자
! 연산자는 주어진 조건을 반전시킵니다. 참이면 거짓으로, 거짓이면 참으로 변환됩니다.
NOT 연산자는 특정 조건이 아닌 경우에 코드를 실행하고자 할 때 유용합니다.
if (!조건) {
// 조건이 거짓일 때 실행되는 코드
}