나무모에 미러 (일반/밝은 화면)
최근 수정 시각 : 2024-10-10 23:45:20

===

!==에서 넘어옴

프로그래밍 언어 문법
{{{#!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. 개요2. 상세3. 명칭4. 기타

1. 개요

JavaScript의 일치 연산자.[1]

2. 상세

다른 프로그래밍 언어들에서는 비교 연산자가 ==인데 비해, 자바스크립트는 ==(동등 연산자)와 ===(일치 연산자)로 나뉜다. 이는 자바스크립트의 특징 때문인데, 약타입 언어인 자바스크립트에서는 1과 "1"을 비교하면 "1"을 자동으로 1로 형변환해 비교하고, 결국 1 == "1"true가 나오게 된다. 이와 비슷하게 null == undefinedtrue로 판단되는 등 여러 문제가 많아 타입까지 비교하는 ===의 존재가 필요하게 되었다.

===(일치 연산자)의 경우 타입까지 비교하게 되므로, 1과 "1"은 타입이 다르므로 1 === "1"false로 판단된다. 최근 들어서는 많은 스타일 가이드에서 불편한 버그가 발생하지 않는 ===(일치 연산자)의 사용이 권장된다.

부정 연산자는 !==이다.

3. 명칭

두 연산자의 정확한 명칭을 알기 힘들어 다른 이름으로 쓰이는 경우가 많은데, MDN의 문서를 보면 영어로는 ==Equality 연산자, ===Strict equality 연산자라고 소개되어 있다. ECMA 표준에도 비슷한 이름으로 나와 있다.

국내에서는 여러 명칭으로 불리고 있지만, 동등 연산자일치 연산자의 사용이 제일 많다.

4. 기타

파일:4skcofasa1p01.png
== 동등 연산자의 황당함을 보여주는 도 존재한다. 주로 JavaScript를 까는 여타 밈과 같이 쓰이는 편.
[1] javascript의 것만은 아니며, Kotlin, Elixir등의 언어도 같은 연산자를 지원한다. 근데 엘릭서의 ==는 문자열을 숫자로 바꾸는 짓까진 하지 않는다