>  기사  >  웹 프론트엔드  >  JavaScript 객체 비교 구현 code_javascript 기술

JavaScript 객체 비교 구현 code_javascript 기술

WBOY
WBOY원래의
2016-05-16 18:53:471110검색

javascript 객체 비교
비교 기호:==,!=,===,!==,>=,<=,>,< ;
== 항상 직진성을 비교하려고 노력하고, 유형이 다른 경우 항상 변환을 시도하십시오.
=== 동일성 비교, 변환 없이 비교

== 기본 유형(문자열, 숫자, 부울)인 경우 해당 값 비교,
var a = "123";
var b = 123;
(a==b) = true;
(a===b) = false;
객체인 경우 배열 , 함수 유형, 해당 참조를 비교합니다. 참조가 동일한 경우에만 true입니다.
function Point(x,y){
this.x = x;
this.y = y ;
};

Point.prototype.toString = function(){
Alert("in toString");
return "x=" this.x " y=" this.y;
};

Point.prototype.valueOf = function(){
Alert("in valueOf");
return this.x this.y;
};
var pa = new Point(1,1);
var pb = new Point(1,1);
var pc = pa;
pa!=pb ;
pa!==pb;
pa==pc;
pa===pc;

var arr1 = [1,2,3];
var arr2 = [1,2,3];
arr1!=arr2, arr1!==arr2


0, false, null, 정의되지 않음
var t1 = 0;
var t2 = false;
var t3 = null;
var t4;
다음: t1==t2;t1!==t2;
t1!=t3; t1!==t3;
t1!=t4;
t2!=t3;
t2!=t4;
t3==t4;


객체를 기본 유형과 비교하는 경우 먼저 객체의 valueOf를 호출한 다음 객체의 toString을 호출하여 기본 유형과 비교합니다.
부울과 비교하는 경우 먼저 true로 변환합니다. 1로, false는 0으로 변환된 후 비교됩니다.

var pa = new Point(1,1);
alert(pa==2); 는 "in valueOf"를 출력한 다음 "true"를 출력합니다.
Point.prototype이 차단된 경우. valueOf는 "in toString"을 출력한 다음 "false"를 출력합니다.
var pa = new Point(1,0);
then pa==true;
관계 연산자>= ,<= ,>,<
양쪽이 숫자이거나 숫자로 변환 가능한 경우 숫자를 비교합니다.
양쪽 모두 문자열이거나 문자열로 변환할 수 있는 경우 문자열을 비교하세요.
한 쪽을 문자열로 변환할 수 있고 다른 쪽을 숫자로 변환할 수 있는 경우 문자열을 숫자로 변환하고 비교해 보세요. 문자열을 숫자로 변환할 수 없으면 NaN이 반환되고 false가 반환됩니다. 🎜>비교에 참여하는 개체가 있으면 항상 개체를 숫자나 문자열로 변환한 후 비교를 시도합니다.

흥미로운 예는 다음과 같습니다. function Point(x,y){
this.x = x;
this.y = y;
}; 🎜>

Point.prototype.toString = function(){ Alert("in toString"); return "x=" this.x " y=" this.y;
};

Point.prototype.valueOf = function(){ Alert("in valueOf"); return this.x this.y;
};
var pa = new Point(1,1);
var pb = new Point(1,1);

then
(pa==pb)==false;(pa> pb)==false;(pa
하지만:
(pa>=pb) == true;

(pa<=pb ) == 사실;

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