> 웹 프론트엔드 > JS 튜토리얼 > JavaScript의 '==='를 풀어줍니다

JavaScript의 '==='를 풀어줍니다

Mary-Kate Olsen
풀어 주다: 2025-01-27 06:29:10
원래의
478명이 탐색했습니다.

Unraveling the 이 안내서는 ECMAScript 사양의 "엄격한 평등 비교"섹션에 정의 된 바와 같이 JavaScript의 엄격한 평등 연산자 ()의 복잡성을 탐구합니다. 기능을 단계별로 탐색 해 봅시다 :

알고리즘 : 상세한 모양

연산자는 평등을 결정하기 위해 다음 알고리즘을 사용합니다. ===

유형 확인 :

연산자는 먼저 두 값의 유형을 비교합니다. 유형이 다르면 즉시 ===가 반환됩니다. 유형 일치는 유형이 동일 한 경우에만 다음 단계로 진행됩니다.

=== 유형 별 비교 :

  1. 숫자 : false (결정의 중요한 지점)로 평가합니다 숫자 동일한 값 리턴

    .
  2. 는 동일하다고 간주됩니다 ( 문자열 : 문자 별 비교는 평등을 결정합니다. 동일한 시퀀스 수율 ; 그렇지 않으면, <.>.
    • 부울 :

      둘 다 반환 . 그렇지 않으면, <.>.

        객체 (배열 및 함수 포함) :
      • NaN === NaN 참조 평등을 확인합니다. 두 값이 모두 동일한 메모리 위치 (동일한 개체)를 가리키는 경우에만 false.
      • true
      • : 0 -0true return . 그러나 는 유형 차이로 인해
      • 입니다
    • truefalse

      인가 이것은 빈번한 혼란의 원천입니다. 사양은 (Not-A-Number)를 그 자체로는 불평등 한 것으로 정의합니다. 이것은
    • 가 무효 또는 정의되지 않은 수치 결과를 나타 내기 때문입니다. 정의되지 않은 두 가지 결과를 동일하게 비교하면 논리적 일관성이 부족합니다
    • 예 :

      를 안정적으로 확인하려면 또는 : 를 사용하십시오 true === true false === false truefalse

    • 인가 사양은 대부분의 수학적 연산에서 그들의 행동을 구별 할 수 없기 때문에
    • 를 동일하게 취급합니다. 그러나 특정 시나리오에는 미묘한 차이가 존재합니다 (예 : 수율 , 는 를 초래합니다). 분화가 필요한 상황에서는 : 를 사용하십시오

      <code class="language-javascript">NaN === NaN; // false</code>
      로그인 후 복사

      객체 및 참조 평등(재검토)

      객체를 비교할 때 ===참조 동일성을 평가합니다. 동일한 내용을 가진 두 객체는 ​​메모리에서 동일한 객체가 아닌 이상 동일한 것으로 간주되지 않습니다.

      <code class="language-javascript">Number.isNaN(NaN); // true
      Object.is(NaN, NaN); // true</code>
      로그인 후 복사

      그러나:

      <code class="language-javascript">Object.is(+0, -0); // false</code>
      로그인 후 복사

      자바스크립트 기초에 대한 추가 탐구

위 내용은 JavaScript의 '==='를 풀어줍니다의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿