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
暂无评论内容