>  기사  >  웹 프론트엔드  >  JavaScript에서 '==' 또는 '==='를 사용해야 합니까?

JavaScript에서 '==' 또는 '==='를 사용해야 합니까?

高洛峰
高洛峰원래의
2016-11-26 13:19:201340검색

===는 대부분의 경우에 사용해야 합니다. 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와 동일하지 않고 잘 정의되어 있음)을 수행하려고 시도하며 유형 변환 규칙은 기억하기 어렵습니다. 또한 전이성을 깨뜨립니다.
그냥 ===,를 사용하세요! == 자바스크립트 생활이 더욱 편해집니다


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.