>  기사  >  웹 프론트엔드  >  JavaScript의 같음(==) 사용법 설명

JavaScript의 같음(==) 사용법 설명

不言
不言앞으로
2018-11-20 15:40:232837검색

이 글은 자바스크립트에서 동등(==)의 사용법에 대한 설명을 제공합니다. 이는 특정 참고 가치가 있습니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

마법은 어디에 있나요

최근 제가 맡은 프로젝트가 프론트엔드 관련이라 js를 작성해보았습니다. 필드의 null이 아닌 값을 처리할 때 tagert_value == ''를 사용하여 판단했는데, 일부 사용자는 target_value = 0일 때 null이 아닌 값 확인에 실패했다고 보고했습니다. 문제를 디버깅할 때 콘솔 상태 표시줄에서 다음을 시도했습니다.

> 0 == ''
< true

문제가 어디에 있는지 알 것 같습니다. . . ==의 판단 논리를 명확하게 이해하지 못해서 공식 문서를 찾아서 살펴볼 계획입니다.

공식설명

Equality(==, !=)

1. 문자열, 숫자 또는 부울로 변환해 보세요.

2、NaN은 자신을 포함한 모든 것과 동일하지 않습니다.

3、음수 0은 양수 0과 같습니다.#🎜🎜 #

4.null은 null 및 정의되지 않음과 같습니다.

5.값 숫자상으로 동일한 문자열이면 동일한 것으로 간주됩니다. 동일한 숫자, 동일한 객체, 동일한 부울 값 또는 (만약 다른 유형) 이러한 상황 중 하나로 강제될 수 있습니다.

6、다른 모든 비교는 동일하지 않은 것으로 간주됩니다.

평등에 대한 공식 설명을 확인하세요. 첫 번째 결과를 보면 결과가 왜 사실인지 알 수 있습니다. 표현식의 양쪽 유형이 일치하지 않는 경우 비교 방법은 먼저 문자열, 숫자 또는 부울로 변환을 시도한 다음 비교를 수행합니다(동일 조건: 동일한 문자열, 수학적으로 동일한 숫자, 동일한 객체, 동일한 부울 값).

이렇게 보면 기본적으로는 명확합니다. 0 == ''를 비교하면 먼저 유형이 변경되었습니다. 그러면 누가 변환되었는지 살펴보겠습니다.

> Number('')
< 0

> var b= ''
> b.toString()
<'0'
int == string일 때 문자열은 먼저 해당 int 값으로 변환된 후 비교됩니다.

피하는 방법은?

다음은 ===(엄격한 평등)에 대한 강력한 소개입니다. 엄밀히 말하면 매우 강력해 보입니다. 공식 이름은

Identity(===. !==)입니다. 아이덴티티는 긴장감 넘치는 범죄 해결 장르의 느낌을 줍니다. 공식 소개 보기:

Identity (===. !==)

이 연산자는 유형 변환이 수행되지 않는 것을 제외하고 항등 연산자가 수행되며 유형은 다음과 같아야 합니다. 동일해야 동일하다고 간주됩니다.

일상적인 개발에서 비교식의 변수 유형이 두 번 일치하는지 확인할 수 없는 경우 식별(=== ) 동일한지 비교합니다. 변수 유형이 일관되면 동등(==)을 사용하여 직접 비교할 수 있습니다.

위 내용은 JavaScript의 같음(==) 사용법 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 segmentfault.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제