프로그래밍 언어 문법 | ||
{{{#!wiki style="margin: -16px -11px; word-break: keep-all" | <colbgcolor=#0095c7><colcolor=#fff,#000> 언어 문법 | C( 포인터 · 구조체 · size_t) · C++( 자료형 · 클래스 · 이름공간 · 상수 표현식 · 특성) · C# · Java · Python( 함수 · 모듈) · Kotlin · MATLAB · SQL · PHP · JavaScript · Haskell( 모나드) |
마크업 문법 | HTML · CSS | |
개념과 용어 | 함수( 인라인 함수 · 고차 함수 · 람다식) · 리터럴 · 상속 · 예외 · 조건문 · 참조에 의한 호출 · eval | |
기타 | #! · == · === · deprecated · NaN · null · undefined · 배커스-나우르 표기법 | |
프로그래밍 언어 예제 · 목록 · 분류 | }}} |
1. 개요
JavaScript의 일치 연산자.[1]2. 상세
다른 프로그래밍 언어들에서는 비교 연산자가 ==인데 비해, 자바스크립트는==
(동등 연산자)와 ===
(일치 연산자)로 나뉜다. 이는 자바스크립트의 특징 때문인데, 약타입 언어인 자바스크립트에서는 1과 "1"을 비교하면 "1"을 자동으로 1로 형변환해 비교하고, 결국 1 == "1"
은 true
가 나오게 된다. 이와 비슷하게 null == undefined
도 true
로 판단되는 등 여러 문제가 많아 타입까지 비교하는 ===
의 존재가 필요하게 되었다.===
(일치 연산자)의 경우 타입까지 비교하게 되므로, 1과 "1"은 타입이 다르므로 1 === "1"
은 false
로 판단된다. 최근 들어서는 많은 스타일 가이드에서 불편한 버그가 발생하지 않는 ===
(일치 연산자)의 사용이 권장된다.부정 연산자는
!==
이다.3. 명칭
두 연산자의 정확한 명칭을 알기 힘들어 다른 이름으로 쓰이는 경우가 많은데, MDN의 문서를 보면 영어로는==
는 Equality 연산자, ===
는 Strict equality 연산자라고 소개되어 있다.
ECMA 표준에도 비슷한 이름으로 나와 있다.국내에서는 여러 명칭으로 불리고 있지만, 동등 연산자와 일치 연산자의 사용이 제일 많다.
4. 기타
==
동등 연산자의 황당함을 보여주는
밈도 존재한다. 주로
JavaScript를 까는 여타 밈과 같이 쓰이는 편.