Menu
Coddy logo textTech

엄격한 비교 vs 느슨한 비교

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

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

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

예를 들어:

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

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

예를 들어:

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

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

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

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

challenge icon

챌린지

초급

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

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

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

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

치트 시트

JavaScript에는 두 가지 유형의 동등 연산자가 있습니다:

느슨한 동등성 (==)은 비교하기 전에 타입 변환(type coercion)을 수행합니다:

5 == "5"   // true - 문자열 "5"가 숫자 5로 변환됨
0 == false // true - 불리언 false가 숫자 0으로 변환됨

엄격한 동등성 (===)은 타입 변환 없이 비교합니다:

5 === "5"   // false - 숫자와 문자열, 변환 없음
0 === false // false - 숫자와 불리언, 변환 없음

부등 연산자도 마찬가지입니다:

  • 느슨한 부등성 (!=) - 타입 변환을 수행함
  • 엄격한 부등성 (!==) - 타입 변환을 수행하지 않음

타입 변환으로 인한 예기치 않은 결과를 방지하기 위해 엄격한 동등성(===)을 사용하는 것이 권장됩니다.

직접 해보기

// 주어진 변수들
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실력 점검

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

기초의 모든 레슨