<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
var obj1={
x:100,
y:{
a:100,
b:200
}
};
var obj2={
x:100,
y:{
a:100,
b:200
}
};
console.log(isEqual(Number('wq'),Number('wq')));
console.log(isEqual([1, 2, 3],{0: 1, 1: 2, 2:3}));
function isObject(obj){
if(typeof obj === 'object' && typeof obj!= null){
return true;
}
return false;
}
function isArray(obj){
return obj instanceof Array;
}
function isEqual(obj1,obj2){
//类型比较
// 如果又任何一方不是object,则自行比较
if(!isObject(obj1) || !isObject(obj2)){
// 用object.is()会更好,避免出现NaN===NaN为false的情况
return Object.is(obj1) === Object.is(obj2);
// return obj1===obj2;
}
if(isArray(obj1)!==isArray(obj2)){
return false;
}
// 传入的同一个对象
if(obj1===obj2){
return true;
}
// 长度比较
var len1 = Object.keys(obj1).length;//[x,y]
var len2 = Object.keys(obj2).length;//[x,y]
if(len1!==len2){
return false;
}
// 值比较
for(var key in obj1){
var result=isEqual(obj1[key],obj2[key]);
if(!result){
return false;
}
}
return true;
}
</script>
</body>
</html>
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。