본문 바로가기
Javascript

JavaScript - 비교연산자와 논리연산자

by Su1993 2020. 6. 21.
반응형

비교 연산자는 string끼리 비교할 수도 있고, 숫자와 string을 비교할 수도 있고, 같은, 더 큼, 더 작음 등등 여러 가지 비교를 할 수 있다.

 

===는 값이 서로 같은지를 비교하는 equality operator(동등 비교 연산자)이다.

 

if (fullName === familyName + " " + "개발") {
}

if (fullName === familyName + " " + firstName) {
}

if (totalCost === 81.50 + 135) {
}

if (totalCost === average + 135) {
}

 

컴퓨터는 무조건 왼쪽부터 코드를 실행하지 않고,

비교연산자가 있을 때는, 비교 연산자 기준으로 왼쪽/오른쪽 나눠서 코드를 실행하게 된다.

 

!===

이렇게 같은지를 비교하는 것이 아니라 !==를 사용해서 틀리는 것을 비교할 수도 있다.

 

if (answer !== "비밀") {
  alert("틀렸습니다.");
}

 

answer값이 "비밀"이 아니면, 다음 구문이 실행한다.

즉, answer값이 "a", "비미", "b" 등 다른 값이 들어있으면 해당 조건은 "참"이 되므로 다음 구문을 실행하게 되는 것이다.

이것뿐만 아니라 비교 연산자는 더 있다.

 

if (1 > 0) { 
}

if (0 < 1) {
}

if (1 >= 0) {
}

if (1 <= 2) {
}

 

==

==는 동등 비교연산자(equality operator)이다. 첫 번째 내용에 나온 === 과는 차이가 있다.

===는 엄격한(identity/strict) 비교 연산자이고, ==는 느슨한 비교 연산자이다.

여태 텍스트는 string형이며, ""로 표시한다 하였고, 숫자는 Number형으로 ""없이 숫자 그대로 사용한다고 했다.

그런데 컴퓨터가 큰따옴표로 되어있는 숫자를 만나면, 숫자긴 한데 쌍따옴표로 감싸있고, 텍스트(string)로 받아들인다.

그래서 JavaScript에서는 느슨한 동등 비교가 가능하다.

 

if ("3" == 3) {
  return true;
}
// 위와 같이 ==로 비교하면 "3"과 3은 참이다.

if ("3" === 3) {
  return false;
}

// 위와 같이 ===로 비교하면 거짓이다. 두 개의 type이 다르기 때문이다.
반응형

댓글