비교 연산자는 연산자 양쪽에 있는 두 값, 즉 좌항과 우항을 비교하는 연산자입니다.
==
, ===
, !=
, !==
)와 관계 연산자(>
, <
, >=
, <=
)가 있습니다.==
)조건문 등에서 자주 사용 되는 동치 연산자에 대해 살펴보자. if문 예제에서 사용했던 ===
연산자는 연산자 양쪽에 있는 두 값을 비교하는 비교연산자 중 하나 이다.
===
연산자는 값과 타입이 같은지를 비교하는 동등 비교 연산자(equality operator)이다.===
엄격(일치)비교 vs.추상(동등)비교)if (answer === "비밀")
왼쪽은 문자열이 담긴 answer
변수이고, 오른쪽은 텍스트인 문자열이다. 이렇게 String끼리 비교할 수도 있고, 숫자와 String을 비교할 수도 있다.
if (fullName === familyName + " " + "개발"){
}
if (fullName === familyName + " " + firstName){
}
if (totalCost === 81.50 + 135){
}
if (totalCost === average + 135) {
}
첫번째 조건문의 조건 부분을 보면 우측에 ()
괄호로 묶어주지 않았다. 그렇다고 "fullName === familyName"
먼저 계산 하고, 뒤의 " " + "개발"
를 이어서 진행하는 것은 아니다. 비교연산자가 있을 떄는, 비교연산자 기준으로 왼쪽/오른쪽 나눠서 코드를 실행하게 된다.
!==
)이렇게 같은지를 비교하는 것이 아니라 !==
를 사용해서 서로 '같지 않음'을 비교할 수도 있다.
if (answer !== "비밀") {
alert("틀렸습니다.");
}
answer 값이 "비밀"이 아니면, 다음 구문을 실행한다. 즉 answer에 "비미", "secret", "빌미" 등 다른 값이 들어있으면 해당 조건은 "참"이 되므로 다음 구문을 실행하게 된다.
==
는 동등 비교연산자(equality operator)이다. 첫 번째 내용과 중복인가? 싶을 수 있지만 차이점이 있다.
첫 번쨰는 =
가 3개인 ===
였고, 지금은 ==
2개다.
===
는 엄격한(identity/strict) 비교연산자이고, ==
는 느슨한 비교연산자이다.
이제까지 텍스트는 String형이며, ""(쌍따옴표)로 표시한다고 하였고, 숫자는 Number형으로 ""없이 숫자 그대로 사용한다고 배웠다. 그런데 컴퓨터가 쌍따옴표로 되어있는 숫자를 만나면, '아 숫자긴 한데, 쌍따옴표로 감싸져있고, 텍스트구나' 하고 알게 된다. 그래서 자바스크립트에서는 느슨한 동등 비교가 가능하다.
아래와 같이 ==로 비교하면 "3"과 3은 참이다.
if("3" == 3){
return true;
}
아래와 같이 ===을 사용하면 거짓이다. 두 값의 type이 다르기 때문이다. (문자열 vs 숫자)
if ("3" === 3) {
return false;
}
우리나라는 20살 부터 술을 마실 수 있다.
function canIDrinkSoju(age) {
if(age < 20) {
return "애야 가서 공부나 해라!"
} else if(age >= 50) {
return "건강을 위해서 술은 적당히 마시세요!"
} else {
return "소주에는 곱창 어떠신가요?"
}
}
console.log(canIDrinkSoju(26))
//소주에는 곱창 어떠신가요?
age < 20
으로 설정age >= 50
으로 설정