JavaScript에서 if(a==1)과 if(a===1) 는 다른 비교 연산자이다.
==(동등 연산자, Equality Operator)
- 값을 비교할 때, 형 변환(type coercion)을 수행함.
- 예를 들어 z와 7이 동등한지 여부를 판단할 때, 두 값의 형식이 다르더라도 자동으로 형식을 변환한 후에 비교함.
- 숫자 1과 문자열 1은 동등하다고 판단
- 따라서 a=1 이거나 a='1'인 경우, a==1 은 true
===(일치 연산자, identity Operator)
- 값을 비교할 때, 형을 변환하지 않는다.
- 두 값의 형도 같아야 일치한다고 판단함.
- 예를 들어 a=1(숫자) 이면 a===1이 true, a='1'(문자열)이면 a===1이 false
결론
- '==연산자'는 형 변환을 수행하기 때문에 값을 비교할 때, 유연하게 동작하지만 예상하지 못한 결과가 나올 수도 있음.
- '===연산자'는 형 변환을 수행하지 않기 때문에 엄격하게 값을 비교하고, 타입 불일치로 인한 오류를 방지할 수 있음.
- 타입 일치 여부에 엄격한 비교가 필요한 경우, '===연산자'를 사용하는 것이 안전함.
'Programming > JavaScript' 카테고리의 다른 글
[javascript] 오늘 날짜 yyyyMMdd, yyyy-MM-dd 형식으로 출력하기 (0) | 2022.08.25 |
---|---|
[javascript] object 내용 확인하기 (0) | 2022.08.07 |
[jQuery] .ready 와 .onload의 차이점 (0) | 2021.11.18 |
[javascript] 공백, 특수문자 체크하기 (0) | 2021.11.11 |
[JavaScript] select box의 option value, text 가져오기 (0) | 2021.11.10 |