T.I.L [JS] '=='과 '==='차이 [21.03.31]

박준석·2021년 4월 1일
0

T.I.L

목록 보기
7/11

면접스터디 Day3


동기와 면접스터디를 하다가 모의면접을 진행중 받은 질문이었다. " '=='과 '==='의 차이를 설명해주세요." 라는 질문이었다.

막상 질문을 받았을 때, '아 차이점 아는데, 뭐였지' 라는 생각이 가장 먼저 들었다. 그러고 고민하다가 결국 대답을 하지 못했다. 그래서 TIL로 간단하게 작성해보려고 한다.

자바스크립트 비교연산자(동치연산자)

우리는 학교 수학시간에 비교 연산자를 배운 기억이 있을 것이다. '=', '>' 등등....
사실은 어떻게 보면 수학적인 개념에서는 굉장히 쉬운 개념이지만, 컴퓨터 언어인 자바스크립트에서는 '='은 같다의 의미가 아니라 할당의 의미를 가진다.

그렇다면 비교 연산자는 어떤게 있을까?
자바스크립트에서 기본적으로 비교연산자는 좌항과 우항을 비교하여 boolean 값으로 반환한다. 'True'와 'False'로만 반환이 된다.

우리가 '=='과 '==='을 검색하면 가장 많이 볼 수 있는 밈이고 이해하기 쉬운 밈이다.


동등 연산자(Equal Operator)

동등 연산자 '=='는 피연산자들이 서로 타입이 다른경우 같은 타입으로 반환을 한다.
즉, 타입은 같다고 보고 값만 검사하는 경우이다.

위의 예시를 들어서 이해해보자.
'1'은 String(문자열)이고, 1은 숫자(Number)이다. 둘은 타입이 다르지만 같은 타입으로 인식해서 true를 반환한다. 0도 숫자이고 false는 boolean인 서로 다른 타입인데 같은 타입으로 변환해서 true를 반환한 예시를 볼 수 있다.

일치 연산자(Strict Equal Operator)

일치 연산자 '===' 피연산자들이 서로 타입이 달라도 타입의 변환 없이 엄격하게 검사를 한다. 즉, 타입과 값 둘다 검사한다.

우의 예시를 들어서 이해해보자.
'1'은 String(문자열)이고, 1은 Number(숫자)이다. 둘은 타입이 다른데 결과값은 false라는 boolean값을 반환했다. 결국 타입까지 엄격하게 검사해서 다르다는 결과값이 도출된 것이다.
1과 1은 타입과 값이 모두 같기 때문에 true라는 값이 나왔다.


개념은 쉬웠고, 질문을 받자마자 '아 무슨 엄격한 검사 뭐시기인데' 이런식으로 생각이 났다. 알고 있었지만 그 순간 대답을 하지 못했다는것에 굉장히 아쉬움이 남았고 그래서 TIL로 남겼다.
어떻게보면 쉽고 까다로운 개념이지만 그래도 JS내용에서 중요한 개념이기 때문에 알아두자!

profile
꾸준히 성장하는 개발자가 되는 것이 목표입니다!

0개의 댓글