>  기사  >  웹 프론트엔드  >  js에서 ==와 ===의 차이점

js에서 ==와 ===의 차이점

PHPz
PHPz원래의
2017-04-02 16:38:331011검색

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. 둘 다 수치인 경우 , 및 값이 동일한 경우 [같음]; (!Exception)은 둘 중 하나 이상이 NaN인 경우 [같지 않음]입니다. (값이 NaN인지 확인하려면 isNaN()만 사용하면 됩니다.)

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

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

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

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

== 판단 규칙:

  1. 두 값 유형이 동일할 경우 === 비교를 수행합니다.

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

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

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

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

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

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

참과 거짓의 변환에 특별한 주의를 기울여야 합니다. 예:

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입니다.

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

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