>  기사  >  웹 프론트엔드  >  JavaScript_javascript 기술의 연산자 == 및 === 소개

JavaScript_javascript 기술의 연산자 == 및 === 소개

WBOY
WBOY원래의
2016-05-16 16:23:001259검색

JavaScript에서는 == 및 === 연산자를 모두 사용하여 두 값이 동일한지 여부를 확인할 수 있습니다. 차이점은 두 값 유형이 일치하지 않으면 === 연산자가 직접 false를 반환한다는 것입니다. while == 연산자는 유형 변환 후에 판단됩니다. 자세한 판단 규칙은 다음과 같습니다.

=== 운영자의 판단규칙

1. 두 값의 유형이 일치하지 않으면 false를 반환합니다.
2. 두 값의 유형이 같고 값이 같으면 true를 반환합니다. NaN은 특별한 경우입니다. NaN===NaN은 false를 반환합니다.
3. 두 값이 모두 개체 유형인 경우 두 참조가 일치하지 않는 한(참조는 동일한 개체 주소를 가리킴) Java와 마찬가지로 개체의 내용이 정확히 동일하더라도 두 값은 일치하지 않는 것으로 간주되며 해당 작업이 수행되면 false가 반환됩니다. 예를 들어, 정확히 동일한 내용으로 두 개의 새 배열을 만들고 === 연산을 수행하면 반환 결과는 false입니다. 내용이 정확히 동일하더라도 여전히 두 개의 다른 개체에 속합니다.
4.0===-0은 true를 반환합니다.

==운영자 판단 규칙

== 연산자는 비교 전에 값의 유형을 변환합니다. 유형 변환은 비교 전에 먼저 숫자로 변환되고, 비교 전에 Date 객체가 먼저 문자열로 변환됩니다. 구체적인 판단 규칙은 다음과 같습니다.

1. 두 값 유형이 일치하면 === 연산을 수행하고 반환합니다.
2.null==정의되지 않음은 사실입니다.
3. 비교 전 true는 1로 변환되고, 비교 전 false는 0으로 변환됩니다.
4. 값 중 하나가 객체인 경우 Date 객체를 제외하고 비교 전 숫자로 변환합니다.
5. 값 중 하나가 Date 객체인 경우 비교하기 전에 문자열로 변환합니다.

실험

코드 복사 코드는 다음과 같습니다.

console.log("3" === 3);//false
console.log(NaN === NaN);//false
var a = {x:1, y:2};
var b = {x:1, y:2};
var c = a;
console.log(a === b);//false
console.log(a === c);//true
console.log(0 === -0);//true

console.log("3" == 3);//true
console.log(null == 정의되지 않음);//true
console.log(true == 1);//true
console.log(true == 9);//false

console.log([9] == 9);//true
console.log([9] == "9");//true

var d = new Date();
var s = d.toString();
var n = d.valueOf();
console.log(d == s);//true
console.log(d == n);//false

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