>  기사  >  웹 프론트엔드  >  ==와 ===의 사용법 차이점을 비교하세요.

==와 ===의 사용법 차이점을 비교하세요.

巴扎黑
巴扎黑원래의
2017-07-24 14:00:062472검색


1. 문자열, 숫자 등 기본형의 경우 ==와 ===의 차이가 있습니다.
1) 서로 다른 유형의 비교 == "같은 유형으로 변환한 후의 값을 확인하세요. " "값"이 같은지 === 유형이 다르면 결과가 동일하지 않습니다
2) 같은 유형을 비교하고, "값"을 직접 비교하면 둘의 결과는 같습니다

2 고급 Array, Object 등의 경우 ==와 ===
"포인터 주소"를 비교하세요

3. ==와 ===의 차이점
1) ==의 경우 고급형을 기본형으로 변환하고 "값" 비교를 수행합니다
2) 유형이 다르기 때문에 === 결과는 false입니다

때때로 두 객체가 같은지 판단할 때 세 개의 등호(===)를 사용할 때 두 개의 등호(==)와 차이점이 무엇인지 알 수 있습니다. 간단히 말하면, "=="를 사용할 때 양쪽의 타입이 다를 경우 js 엔진은 이를 동일한 타입으로 변환한 후 비교하게 되는데, "==="는 타입 변환을 수행하지 않으므로, 양측은 동일한 유형에 속하지 않으며 확실히 동일하지 않습니다. 예:

var a = 0, b = '0';

alert((a == b) + '--' + (a === b))

이때 표시되는 결과는 "true–false"입니다.

=== 판단 규칙

  1. 유형이 다르면 [같지 않음]

  2. 둘 다 숫자 값이고 동일한 값이면 [같음]입니다. 그 중 적어도 하나는 NaN이고 그 다음은 [같지 않음]입니다. (값이 NaN인지 확인하려면 isNaN()만 사용하여 확인할 수 있습니다.)

  3. 둘 다 문자열이고 각 위치의 문자가 동일하면 [같음]이고, 그렇지 않으면 [같지 않음]입니다.

  4. 두 값이 모두 참이거나 둘 다 거짓이면 [같음]입니다.

  5. 두 값이 동일한 개체나 함수를 참조하는 경우 [같음]이고, 그렇지 않으면 [같지 않음]입니다.

  6. 두 값이 모두 null이거나 둘 다 정의되지 않은 경우 [같음]입니다.

== 판단 규칙:

  1. 두 값 유형이 동일하면 === 비교를 수행합니다.

  2. 두 값 유형이 다른 경우에는 동일할 수 있습니다. 유형 변환을 수행한 후 다음 규칙에 따라 비교합니다.

  • 하나는 null이고 다른 하나는 정의되지 않은 경우 [equal]입니다.

  • 하나가 문자열이고 다른 하나가 숫자 값인 경우 문자열을 숫자 값으로 변환한 후 비교하세요.

  • 값이 true이면 1로 변환하여 비교하고, false이면 0으로 변환하여 비교합니다.

  • 하나가 객체이고 다른 하나가 숫자 값이나 문자열인 경우 객체를 기본 유형의 값으로 변환한 후 비교합니다. 객체는 toString 또는 valueOf 메소드를 사용하여 기본 유형으로 변환됩니다. JS 핵심 내장 클래스는 toString 전에 valueOf를 시도합니다. 예외는 toString 변환을 사용하는 Date입니다. JS가 아닌 핵심 객체를 예로 들어보겠습니다. (더 귀찮고 이해가 잘 안 됩니다.)

  • 다른 조합은 [같지 않음]입니다.

true와 false의 변환에 특별한 주의를 기울여야 합니다. 예:

alert(true == 1);  //ture
alert(true == 2); //false, true会转换成number,也就是1,当然 1 不等于 2
//可以使用 !! 来把一个数据类型转换为boolean型
alert(true == !!2) //true,!2 === false !(!=2) = !false = true

또한 js에서 변수가 논리 연산에 사용되는 경우 변수에는 초기 값이 없거나 해당 값이 다음과 같습니다. 0, -0, null, "", false, 정의되지 않음 또는 NaN인 경우 해당 값은 false입니다. 그렇지 않은 경우 해당 값은 true입니다.

위 내용은 ==와 ===의 사용법 차이점을 비교하세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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