首页 > 其他分享 >js 对比两个对象、基本类型是否一致

js 对比两个对象、基本类型是否一致

时间:2023-03-14 16:33:16浏览次数:45  
标签:对象 Object NaN js 一致 类型 对比

这里需要理解的是基本类型,和对象 用 java 的话说就是(讲道理 js 理论应该类似) ,基本类型在栈区,可以直接比较其值, 

对象类型 存放于栈区 和 堆区,栈区存放的是对象在堆区的内存地址,直接对比相当于在对比地址,那么两个不同对象的地址必然不同

那么 ,我们先来看看 js 中关于 基本类型的对比方式 (讲道理java差不多,很尴尬的就是一个后端没有系统性学习前端,那么就会出现,各种把东西往后端上套的做法,实数无奈)

1. ==  运算符会对它两边的操作数做隐式类型转换  如此就会出现  null == false == undefined == ''   true == 1 == '1'  等等

2. === 运算符不会对两边的值进行转换,且他要求两边的值 类型 及 值 完全一致 +0 === -0 true,但  NaN === NaN  为 false  

3. Object.is 需要注意的是  Object.is(NaN,NaN) true; Object.is(+0, -0) false;

 

对比对象是否相同就不能用上面的方式了,否则会一直在对比两个对象的内存地址串

那么,对比对象的思路是什么呢

1,首先对比两个对象的 key 长度是否一致,这个很容易刷下一批,当然也分场景,比如这些对象都来自后端的一个 bean 或者 entity 或者叫 POJO ,此时就不需要对比

2,然后 在用其中一个对象的 key 对应的 val ,对比另一个对象该 key 值对象的 val 是否相等,此时会触发递归,因为对象的属性值也可能是一个对象,StackOverflowException 小心哦

  当然也分场景,若是和 1 中后面场景相同,那么,返回的对象中属性顺序也应该是相同的,若是后端没有特殊处理的话,直接取自数据库,那么简便方法是对比两个对象 JSON.stringfy(Obj) 

 

标签:对象,Object,NaN,js,一致,类型,对比
From: https://www.cnblogs.com/ygrzzttzjzzzszz/p/17215384.html

相关文章

  • Ubuntu18.04下载nodejs
    下载nodejs参考链接官网下载源码官网:https://nodejs.org/中文网(推荐):http://nodejs.cn/可以下载自己想要的版本解压并做软连接tar-xvfnode-v10.15.3-linux-x64.ta......
  • 一文掌握Zephyr入门(含FreeRTOS对比)
    前言本文将介绍 Zephyr RTOS 的基础信息,讲解初步接触学习Zephyr 需要了解掌握的知识与学习路线,让大家先快速构建起对这个操作系统的认知,文中还会与传统常见的RTOS ,如Fr......
  • Node.js 中使用 Playwright 定位到一个 iframe
      要在Node.js中使用Playwright定位到一个iframe并获取其在屏幕中的位置,可以按照以下步骤进行:1.使用`page.frame()`方法获取iframe元素的句柄:```javas......
  • linux 安装nodejs
    https://www.cnblogs.com/veezeng/p/11164066.htmlhttps://nodejs.org/dist/......
  • 2023-03-14 React.js 通过this.props.match.params拿到传递的id为空或者undefined
    前言:react+antd实现点击按钮跳转页面,跳转代码如下:this.props.history.push('/my/'+id)已知my在router中已注册:<Routepath="/my/"component={My}/>解决方案:需......
  • 使用js的html2canvas截图div并下载
    暂未完赛,请继续加油吧-测试截图```functiongetScreenShot(){html2canvas(document.querySelector("#canvas")).then(canvas=>{//docume......
  • 易语言 精易模块 操作json数据
    1单一键值对json原始数据{"status":200,"results":"success"}.版本2.支持库spec.局部变量bool,逻辑型.局部变量json,类_jsonbool=json.解析(到文本(读入......
  • json-diff简单使用
    一、摘要今天推荐的是一款java中,对比两个json-diff对象是否一致的工具包json-diff`。他可以对比任何结构的两个json数据,并且将其中的不一致信息反馈给用户。工具还内置......
  • xml,nodejs处理成json格式
    <ns:selectLineInfoResponsexmlns:ns="http://service"><ns:return>用户名或密码不正确!</ns:return></ns:selectLineInfoResponse>nodejs如何处理成json格式......
  • 第129篇:JS模块化开发
    好家伙,本篇为《JS高级程序设计》第二十六章“模块”学习笔记 JS开发会遇到代码量大和广泛使用第三方库的问题。解决这个问题的方案通常需要把代码拆分成很多部分,然后......