位置: 编程技术 - 正文

详解JavaScript对象序列化(javascript的)

编辑:rootadmin

推荐整理分享详解JavaScript对象序列化(javascript的),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:javascript的,javascript的,javascript的,对javascript的理解,对于javascript理解,javascript的对象主要包括,javascript对象有什么用,javascript对象有什么用,内容如对您有帮助,希望把文章链接给更多的朋友!

一.什么是对象序列化?

  对象序列化是指将对象的状态转换为字符串(来自我这菜鸟的理解,好像有些书上也是这么说的,浅显易懂!);

  序列化(Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程(来自“百度百科—序列化“,学术性强,略显高端);

二.为什么会有对象序列化?

详解JavaScript对象序列化(javascript的)

  世间万物,都有其存在的原因。为什么会有对象序列化呢?因为程序猿们需要它。既然是对象序列化,那我们就先从一个对象说起:

  当这句代码运行时,对象obj的内容会存储在一块内存中,而obj本身存储的只是这块内存的地址的映射而已。简单的说,对象obj就是我们的程序在电脑通电时在内存中维护的一种东西,如果我们程序停止了或者电脑断电了,对象obj将不复存在。那么如何把对象obj的内容保存在磁盘上呢(也就是说在没电时继续保留着)?这时就需要把对象obj序列化,也就是说把obj的内容转换成一个字符串的形式,然后再保存在磁盘上。另外,我们又怎么通过HTTP协议把对象obj的内容发送到客户端呢?没错,还是需要先把对象obj序列化,然后客户端根据接收到的字符串再反序列化(也就是将字符串还原为对象)解析出相应的对象。这也正是”百度百科—序列化“中描述的两个作用——存储、传输。

三.JavaScript中的对象序列化

  JSON的全称是”JavaScript Object Notation“——JavaScript对象表示法。ECMAScript 5中提供了内置函数JSON.stringify()和JSON.parse()用来序列化和还原JavaScript对象。它们使用起来也很简单:

可以看到,exampleStr和exampleObj2中并没有 y:undefined 的内容。这说明:JSON的语法是JavaScript语法的子集,它并不能表示JavaScript中的所有值,对于JSON语法不支持的属性,序列化后会将其省略。其详细规则如下:

①对于JavaScript中的五种原始类型,JSON语法支持数字、字符串、布尔值、null四种,不支持undefined; ②NaN、Infinity和-Infinity序列化的结果是null; ③JSON语法不支持函数; ④除了RegExp、Error对象,JSON语法支持其他所有对象; ⑤日期对象序列化的结果是ISO格式的字符串,但JSON.parse()依然保留它们字符串形态,并不会将其还原为日期对象; ⑥JSON.stringify()只能序列化对象的可枚举的自有属性;

从上面的例子也可以看到,在符合以上规则的情况下,还可以通过对象序列化和反序列化完成对象的深拷贝。

标签: javascript的

本文链接地址:https://www.jiuchutong.com/biancheng/383736.html 转载请保留说明!

上一篇:学习JavaScript设计模式之单例模式(javascript教程doc)

下一篇:理解JS绑定事件(理解js绑定事件是什么)

  • 进项税大于销项税结转分录
  • 建筑业资源税如何缴纳
  • 材料暂估入库的摘要怎么写
  • 公司闲置资金理财做了三年定期存款
  • 采购服务需要缴什么税
  • 没开发票的收入可以不入账吗
  • 房地产开发企业的土地使用权计入哪里
  • 定额发票遗失情况说明怎么写
  • 小规模纳税人费用票怎么做账
  • 税收用在哪些方面
  • 员工因为过错给公司造成损失
  • 调试阶段是什么意思
  • 公司购入的房子如何抵押
  • 公司支付员工团建费没有发票怎么录账
  • 社保的计提和缴纳
  • 减少实收资本会引起资产和所有者权益发生变化吗
  • 企业注销要缴个税吗
  • 店铺不盈利还开吗
  • 委外技术服务费应归集哪个研发项目
  • 主营业务收入和其他业务收入的区别
  • 股权转让怎么办理才合理
  • 财政票据税务局能查到吗
  • 上年计提的费用往来,能冲回吗
  • windows无法连接到打印机指定的网络名不再可用
  • 普通发票用记账吗
  • 用代管资金付出的钱
  • CENTOS7安装报错
  • php双冒号和箭头
  • 如何修改选区边缘
  • 百香果的副作用及禁忌是哪些
  • php获取文件名
  • 接受专利投资会亏本吗
  • 汇算清缴期结束后,税务机关发现企业
  • 将城镇生活垃圾直接用作肥料
  • 怎么安装vue2.0
  • 银行存款缴纳房产税会计分录
  • SSD目标检测算法
  • 扩散模型和gan的区别
  • 上月普通发票怎么作废
  • django中httpresponse
  • verilog hdl中任务可以调用
  • 公司股东利润分配方案范本
  • 保教费收入要交企业所得税吗
  • 预收账款转收入可以调以前年度吗
  • 发票开具的常见错误以及盖章问题
  • 织梦怎么改文字
  • 本月损益类未结转为零的一级科目6603
  • 办公桌椅入固定资产计提折旧几年
  • 什么时候工程物资什么时候在建工程
  • 发票勾选后什么时候开票
  • sql2005附加数据库出错
  • 自来水厂被收购,员工怎么办
  • 清算期间研发费怎么算
  • 未实缴出资的股东退股
  • 记错科目怎么调整
  • 月末库存商品能抵税吗
  • 研发费用加计扣除是什么意思啊
  • 销售边角废料取名怎么取
  • mysql两种安装方式
  • mysql的min函数
  • mysql 查找
  • osk.exe
  • msng.exe是什么
  • 保存 linux
  • hyper虚拟机连接外网
  • win10里的运行
  • linux ii
  • main报错
  • python和java对接
  • unity的shader在哪儿
  • vue中使用js
  • jquery 插件写法
  • python cx_Oracle模块的安装和使用详细介绍
  • input按钮的事件处理大全
  • js读取文件大小
  • javascript的基本语法
  • python编程简单案例
  • 税务上成品油换算
  • 江苏税务查询授权验证码
  • 减免性质代码怎么填写才正确
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设