javascript判断变量相等的方法整理

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
喜欢就支持一下吧
点赞15 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容