Menu
Coddy logo textTech

엄격한 비교 vs 느슨한 비교

Coddy JavaScript 여정의 기초 섹션에 포함된 레슨 — 77개 중 16번째.

JavaScript에는 두 가지 유형의 비교 연산자가 있습니다: 느슨한 동등 비교 (==)와 엄격한 동등 비교 (===).

느슨한 동등 비교(==)는 타입 변환(type coercion)을 수행한 후에 두 값이 같은지 확인합니다. 이는 피연산자들의 타입이 서로 다를 경우, JavaScript가 비교를 수행하기 전에 이들을 공통 타입으로 변환하려고 시도함을 의미합니다.

예를 들어:

let b = 5 == "5";   // 비교 전에 문자열 "5"가 숫자 5로 변환되기 때문에 true를 가집니다
let b = 0 == false; // 비교 전에 불리언 false가 숫자 0으로 변환되기 때문에 true를 가집니다
let c = "" == false; // 비교 전에 빈 문자열이 숫자 0으로 변환되기 때문에 true를 가집니다

반면, 엄격한 동등성(===)은 어떠한 타입 변환도 수행하지 않고 두 값이 같은지 확인합니다. 피연산자의 타입이 서로 다르면, 두 값은 같지 않은 것으로 간주됩니다.

예를 들어:

let b = 5 === "5";   // false를 가집니다. 타입 변환이 수행되지 않으며, 숫자는 문자열과 같지 않기 때문입니다.
let b = 0 === false; // false를 가집니다. 타입 변환이 수행되지 않으며, 숫자 0은 불리언 false와 같지 않기 때문입니다.

일반적으로 타입 변환으로 인한 예기치 않은 결과를 방지하기 위해 대부분의 경우 엄격한 일치 연산자(===)를 사용하는 것이 권장됩니다.

마찬가지로, 비슷한 방식으로 작동하지만 일치 여부 대신 불일치 여부를 확인하는 느슨한 불일치(!=) 및 엄격한 불일치(!==) 연산자도 있습니다.

느슨한 불일치(!=)는 타입 강제 변환을 수행한 후 두 값이 같지 않은지 확인하는 반면, 엄격한 불일치(!==)는 타입 변환을 수행하지 않고 두 값이 같지 않은지 확인합니다.

challenge icon

챌린지

초급

세 개의 변수 a, b, c가 포함된 코드가 주어집니다.

여러분의 과제는 다음 비교를 수행하고 결과를 출력하는 것입니다:

  1. ab와 느슨하게 같은지(loosely equal) 확인하고 그 결과를 d에 저장하세요.
  2. ac와 엄격하게 같은지(strictly equal) 확인하고 그 결과를 e에 저장하세요.
  3. bc와 느슨하게 같지 않은지(loosely not equal) 확인하고 그 결과를 f에 저장하세요.
  4. ab와 엄격하게 같지 않은지(strictly not equal) 확인하고 그 결과를 g에 저장하세요.

주어진 변수와 비교 연산자를 사용하여 과제를 완료하세요.

직접 해보기

// 주어진 변수들
let a = 10
let b = "10"
let c = true

// 아래에 코드를 입력하세요


// 아래 줄을 변경하지 마세요
console.log(`d = ${d}`)
console.log(`e = ${e}`)
console.log(`f = ${f}`)
console.log(`g = ${g}`)
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

기초의 모든 레슨