관계연산 == 과 ===의 차이
관계연산 ==과 ===를 구분해서 사용하는 경우가 종종 있다. 그래서 기본적으로는 어떤건지는 알고 작업에 임하는것이 좋을꺼라는 개인적인 생각에 의거해서 작성하게 된 글입니다.
==의 명칭은 (Equal Operator)이고 ===는 (Strict Equal Operator)라고 합니다.
strict는 엄격한 이라는 의미로 좀더 엄격하게 같은지를 보는 연산자라고 생각하시면 됩니다.
- =는 만약 a=b이라고 했을때, b를 a에 대입해서 a가 b이라고 약속하는 것이라고 합니다.
- ==는 먄약 a==b이라고 했을때, a가 b과 '값'이 같은지를 판단해서 맞으면 true, 틀리면 false라고 합니다.
- ===는 만약 a===b이라고 했을대, a가 b과 '값'과 '타입/형식?'이 정확하게 같은지를 판단해서 true/false를 표현합니다.
.
===를 좀더 자세히 설명하면 다음과 같습니다.
데이터 값으로의 의미는 1이라는 데이터는 역시 1인데. 형식이라는 의미는 javascript가 똑똑(?)하게도 숫자1과 문자"1"을 1이라는 데이터로 인식할 수 있기때문에, 문자와 값의 형식조차 완벽히 같아야만 true라고 판단(리턴)하게 됩니다.
ex)
1=="1"은 true이지만,
1==="1"은 false입니다.
또,
null과 undefined는 값이 없다는 의미의 데이터 형이라고 합니다. null은 값이 없음을 명시적으로 표시한 것이고, undefined는 그냥 값이 없는 상태이기때문에, ==로는 true가 뜨지만, ===로는 false가 리턴됩니다.
아마도 이제 자바스크립트를 입문한사람들에게는 null과 undefine 조금 구분하기 힘들꺼라고 예상됩니다.
이부분은 ===가 ==보다 엄격하구나 정도로 생각하고 넘어가는걸 추천합니다. 나중에 이런 코드들을 접하게되면 정확한 의미를 알게됩니다. 실제 자료형과 데이터가 같은지를 비교하기 위해서는 === 를 사용하는게 명확합니다. 그래서 실무에서 코딩을 할때는 ==보다는 ===를 사용해야 한다고 강하게 추천합니다. 이유는 역시 조건문이나, 좀더 복잡한 상황에서의 예측및 비교가 되기 때문이죠.
결론은 '자료형과 값을 같이 비교하기 위해서는 ==='를 사용해서 조금더 명시적인 표현으로 분기처리를 하는 방식에 대해서 알고있자!'가 개인적인 생각입니다.
☆☆☆☆☆
'개발 > 기본) 개발용어' 카테고리의 다른 글
잡학지식)GDPR은 무엇인가? (0) | 2020.07.15 |
---|---|
잡학지식) UI/UX - 햄버거버튼, 도시락버튼, 미트볼 버튼 (11) | 2020.07.01 |
잡학지식) 마케팅 지표 관련 용어(TS, DAU, NRU, CPI, PU, BU, ARPPU, ARPDAU등) (8) | 2020.04.01 |
잡학지식) 인스턴스 던전(Instance Dungeon) (0) | 2020.01.29 |
잡학지식) 기믹요소(Gimmick) (0) | 2019.08.20 |
댓글