===는 대부분의 경우에 사용해야 합니다. x == null은 null/undefine을 감지할 때만 사용할 수 있습니다. 일반적으로 null과 정의되지 않음을 구분하지 않기 때문입니다. 즉, x == null은 x =로 간주됩니다. == null || x === 정의되지 않음의 약어입니다. 1 == '1' 과 같이
== 비교가 더 편리한 것 같지만, 유형에 대해 잘못된 가정을 하는 등의 숨겨진 위험을 묻게 됩니다.
예:
if (x == 10) x += 5 www.2cto.com
수신 x가 문자열 '10'인 경우 x의 결과가 변경됩니다. '105'로. 문자열 '105'는 후속 작업에서 변환되어 숨겨진 오류가 발생할 수 있습니다.
또한 프로그래머는 무의식적으로 특정 가정에 의존할 수 있습니다. 예를 들어 동등 비교는 전이적이어야 합니다. 즉, a = b, b = c가 되어야 하며 이는 a = c로 이어져야 합니다. . 그러나 JavaScript의 ==는 전이적이지 않습니다. 예를 들어 0 == '0' , 0 == '' 이지만 '0' != '' 입니다.
따라서 JS의 ==는 Java/C#의 equals()가 아닙니다. Java/C# 언어에서는 equals()가 전이성을 보장해야 하기 때문입니다.
요컨대 대규모 프로그래밍의 경우 ==의 작은 편리함은 그것이 가져오는 위험과 비교할 수 없습니다.
제안:
==는 잊어버리고 ===만 사용하세요. ==설계 실수입니다. 유형 변환(Java와 동일하지 않고 잘 정의되어 있음)을 수행하려고 시도하며 유형 변환 규칙은 기억하기 어렵습니다. 또한 전이성을 깨뜨립니다.
그냥 ===,를 사용하세요! == 자바스크립트 생활이 더욱 편해집니다