==와 ===의 차이는 쉽게 구분할 수 있다.
'='이 3개 붙은 ===는 '='이 2개붙은 ==보다 강력하게 같은, 즉 정확하게 같을 경우에 true를 반환한다.
간단한 예시를 작성해보겠다.
// 만약 데이터로 1과 '1'이 들어왔다고 가정하겠다.
if (1 == '1')
alert('같습니다!!')
if (1 === '1')
alert('다릅니다!!')
위처럼 ==의 경우 1과 '1'을 같은 것으로 판단한다. 하지만 여기서 ===는 '='이 하나 더 늘어난만큼 강력하게 비교를 해서 1과 '1'이 다르다고 판단한다. 별차이 없네라고 생각할 수 없지만 또 다른 예시가 있다.
// 데이터가 None과 Undefined이 왔다가 가정
if (null == Undefined)
alert('같습니다!!')
if (null === Undefined)
alert('다릅니다!!')
null과 Undefined는 명백히 다르다.
대충 생각하면 '둘다 변수에 아무것도 없다는 거잖아' 라고 생각할 수 있지만 null은 변수를 선언하고 그 곳에 null이 '들어간 것'이고
undefined는 변수를 선언하고 그 곳에 아무것도 '들어가지 않은 것'이다. 극단적인 예를 들면 회원정보를 조회하여 변수에 담기로 하고 서버에서 어떠한 에러로 작동이 안되어 아무 값이 안들어가 undefined이 나온 것과 조회한 결과 그런 회원이 없어 null이 나온 것은 천지차이이다. 이런 위험성때문에 사람들은 javascript에서 ==의 사용보다 ===의 사용을 권고한다.
나도 다시 복습을 하며 별 것 아닌 것처럼 생각했지만 ==을 습관처럼 사용하다보니 위험한 짓을 하고있구나 생각하게 되었다.
'='의 개수로 강력히 비교, 덜 비교로 기억해두면 오랫동안 기억할 수 있을 것이다.
1. == 일 경우
2. === 일 경우
확실히 ===의 경우 보기좋게 정렬되어 있는 것을 확인할 수 있다.
위의 ==의 경우처럼 여러 경우들을 외울 자신이 없으면 간편하게 ===을 사용하면 된다.
'공부하는 중~~ > 웹' 카테고리의 다른 글
[WEB] NVM을 이용한 node 버전 관리 (Window, Mac) (0) | 2022.06.28 |
---|---|
[JavaScript] ECMA6, normal function vs Arrow function 비교 (0) | 2021.01.28 |
[React] Props vs State, Class component vs Functional component 비교하기 (0) | 2021.01.12 |
[Spring Boot] 스프링 입문하기 (0) | 2020.10.28 |
[Spring Boot] 스프링 (코드 수정 시)자동 재시작 하기 (1) | 2020.10.27 |
댓글