
1、==为转换类型比较运算符,===为严格比较运算符,在数据类型相同的情况下,使用==一般不会造成问题。
letnum=5; letnum2=5; num==num2;//true num===num2;//true
2、Array toString方法,前端给后端传参时,后端有时会要求多个参数,隔开,Array toString方法就比较有用了,这一方法也能用作数组比较。
letarr=[1,3,5,7,9]; letarr2=[1,3,5,7,9]; arr.toString()===arr2.toString();//true"1,3,5,7,9"
3、isEqual函数可以判断绝大部分复杂对象(除了对象中有函数的)
functionisObject(obj){
returntypeofobj==='object'&&obj!==null
}
functionisEqual(a,b){
if(a===b)returntrue
varisObjectA=isObject(a)
varisObjectB=isObject(b)
if(isObjectA&&isObjectB){
try{
varisArrayA=Array.isArray(a)
varisArrayB=Array.isArray(b)
if(isArrayA&&isArrayB){//ab都是数组
returna.length===b.length&&a.every((el,index)=>isEqual(el,b[index]))
}elseif(ainstanceofDate&&binstanceofDate){//ab都是Date对象
returna.getTime()===b.getTime()
}elseif(!isArrayA&&!isArrayB){//此时ab都是纯对象
varkeyA=Object.keys(a)
varkeyB=Object.keys(b)
returnkeyA.length===keyB.length&&keyA.every(key=>isEqual(a[key],b[key]))
}else{
returnfalse
}
}catch(e){
console.log(e)
returnfalse
}
}elseif(!isObjectA&&!isObjectB){//ab可能是string,number,boolean,undefined中的一种
returnString(a)===String(b)
}else{
returnfalse
}
}
以上就是javascript判断变量相等的方法整理,希望对大家有所帮助。更多Javascript学习指路:Javascript
原文来自:https://www.py.cn© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END


















































暂无评论内容