当前位置: 首页 > news >正文

南昌网站建设是什么长春是几线城市2020排名

南昌网站建设是什么,长春是几线城市2020排名,安装wordpress时出现空白,济宁网站建设_云科网络谨慎使用JSON.stringify 为了避免因为对象是引用类型而造成的数据源污染#xff0c;我们通常使用 JSON.stringify 将其转换为字符串#xff0c;而后通过JSON.parse方法将字符串转化一个新对象来实现深拷贝。但是在这个过程中也会存在一些问题#xff0c;本文就介绍一下使用…谨慎使用JSON.stringify 为了避免因为对象是引用类型而造成的数据源污染我们通常使用 JSON.stringify 将其转换为字符串而后通过JSON.parse方法将字符串转化一个新对象来实现深拷贝。但是在这个过程中也会存在一些问题本文就介绍一下使用JSON.stringify可能遇到的一些问题尽可能在以后避免这些问题。 先看一段代码 let obj {name: leo,age: Infinity } let originObj JSON.stringify(obj) console.log(originObj) // {name:leo,age:null}可以看到在转换过程中Infinity变成了null。 先看看解决办法 简单粗暴重新赋值age属性使用JSON.stringify的第二个参数 function censor(key, value) {if (value Infinity) {return Infinity;}return value; } const b JSON.stringify(obj, censor);const c JSON.parse(b,function (key, value) {return value Infinity ? Infinity : value;} ); console.log(c); // {name: leo, age: Infinity}作为参考大家可能直接用了第一种方法。但是这里可以看到JSON.stringify其实还有第二个参数那么它有什么用呢接下来我们就来揭开它的神秘面纱。 JSON.stringify 的基本语法 语法 JSON.stringify(value[, replacer [, space]])JSON.stringify() 方法将 JavaScript 对象或值转换为 JSON 字符串如果指定了替换函数则可选择替换值如果指定了替换数组则可选择仅包含指定的属性。 简单来说JSON.stringify() 将一个值转换为相应的 JSON 格式的字符串。 参数替换器 也就是第二个参数replacer,该参数是可选的可以是函数或数组。 当是函数时在序列化过程中每个待序列化的属性都会被函数进行转换处理。 let replacerFun function (key, value) {console.log(key, value)if (key name) {return undefined}return value }let myIntro {name: leo,age: 25,like: FE }console.log(JSON.stringify(myIntro, replacerFun)) // {age:25,like:FE}这实际上是一个过滤函数它利用了JSON.stringify中的特性如果对象属性值未定义则在序列化时会被忽略稍后我们会提到。 在开始时replacer 函数将传递一个空字符串作为键值代表要字符串化的对象。 上面console.log(key, value)输出的值如下 {name: leo, age: 25, like: FE} // 其实是 {name: leo, age: 25, like: FE}, 不过是个空字符 ame leo age 25 like FE {age:25,like:FE}可见通过第二个参数我们可以更加灵活地操作和修改序列化目标的值。 当第二个参数是数组时只会序列化数组中包含的属性名称 JSON.stringify (myIntro, [ name ]) // {name:leo}第三个参数 指定一个空字符串进行缩进更常见的是指定一个数字代表几个空格。 console.log(JSON.stringify(myIntro)) console.log(JSON.stringify(myIntro, null, 2))// 输出 // {name:leo,age:25,like:FE} // { // name: leo, // age: 25, // like: FE // }JSON.stringify使用场景 判断对象/数组值是否相等 let a [1,2,3],b [1,2,3]; JSON.stringify(a) JSON.stringify(b);// truelocalStorage/sessionStorage 存储对象 我们知道localStorage/sessionStorage只能存储字符串。当我们要存储对象时需要使用 JSON.stringify 将其转换为字符串然后在获取对象时使用 JSON.parse解析出来。 function setLocalStorage(key,val) {window.localStorage.setItem(key, JSON.stringify(val)); };function getLocalStorage(key) {let val JSON.parse(window.localStorage.getItem(key));return val; };实现对象深拷贝 let myIntro {name: leo,age: 25,like: FE }function deepClone() {return JSON.parse(JSON.stringify(myIntro)) }let copyMe deepClone(myIntro) copyMe.like js only console.log(myIntro, copyMe)// { name: leo, age: 25, like: FE } { name: leo, age: 25, like: js only }路由浏览器地址参数传递 由于浏览器参数只能通过字符串传递所以还需要JSON.stringify。 使用 JSON.stringify 的注意事项 在某些场景下使用 JSON.stringify 可能会引发一些难以发现的问题 转换属性值中有toJSON方法 如果转换值中有toJSON方法则该方法返回的值将是最终的序列化结果。 let toJsonMyIntro {name: Gopal,age: 25,like: FE,toJSON: function () {return frontend;}, };console.log(JSON.stringify(toJsonMyIntro)); // frontend转换后的值中有未定义、任意函数、符号值 分为两种情况 一种是数组对象未定义的、任意函数和符号值都会被转换为null。 JSON.stringify([undefined, Object, Symbol()]); // [null,null,null]一种是非数组对象序列化时会被忽略。 JSON.stringify({ x: undefined, y: Object, z: Symbol() }); // {}对于这些情况我们可以使用JSON.stringify的第二个参数来使其满足我们的期望。 const testObj { x: undefined, y: Object, z: Symbol(test) }const resut JSON.stringify(testObj, function (key, value) {if (value undefined) {return undefined} else if (typeof value symbol || typeof value function) {return value.toString()}return value })console.log(resut) // {x:undefined,y:function Object() { [native code] },z:Symbol(test)}含有循环引用的对象 let objA {name: leo, }let objB {age: 25, }objA.age objB objB.name objA JSON.stringify(objA)上面的代码会报错 VM1140:11 Uncaught TypeError: Converting circular structure to JSON 以symbol为属性键的属性 所有使用符号作为键控的属性都将被完全忽略即使它们必须包含在替换参数中。 JSON.stringify({ [Symbol.for(foo)]: foo }, [Symbol.for(foo)]) // {}JSON.stringify({ [Symbol.for(foo)]: foo }, function (k, v) {if (typeof k symbol) {return a symbol;} }) // undefined值为NaN和Infinity 数组值或具有 NaN 和 Infinity 值的非数组对象属性将转换为 null let me {name: leo,age: Infinity,money: NaN, }; let originObj JSON.stringify(me); console.log(originObj); // {name:leo,age:null,money:null}JSON.stringify([NaN, Infinity]) // [null,null]具有不可枚举的属性值 默认情况下不可枚举属性被忽略。 let person Object.create(null, {name: { value: leo, enumerable: false },age: { value: 25, enumerable: true }, })console.log(JSON.stringify(person)) // {age:25}
文章转载自:
http://www.morning.khdw.cn.gov.cn.khdw.cn
http://www.morning.fppzc.cn.gov.cn.fppzc.cn
http://www.morning.mdplm.cn.gov.cn.mdplm.cn
http://www.morning.hgsmz.cn.gov.cn.hgsmz.cn
http://www.morning.rqknq.cn.gov.cn.rqknq.cn
http://www.morning.hlfgm.cn.gov.cn.hlfgm.cn
http://www.morning.gwtbn.cn.gov.cn.gwtbn.cn
http://www.morning.tznlz.cn.gov.cn.tznlz.cn
http://www.morning.jcyyh.cn.gov.cn.jcyyh.cn
http://www.morning.jtdrz.cn.gov.cn.jtdrz.cn
http://www.morning.btwrj.cn.gov.cn.btwrj.cn
http://www.morning.zqfjn.cn.gov.cn.zqfjn.cn
http://www.morning.gcfg.cn.gov.cn.gcfg.cn
http://www.morning.ngjpt.cn.gov.cn.ngjpt.cn
http://www.morning.hwbmn.cn.gov.cn.hwbmn.cn
http://www.morning.ampingdu.com.gov.cn.ampingdu.com
http://www.morning.mnccq.cn.gov.cn.mnccq.cn
http://www.morning.ynwdk.cn.gov.cn.ynwdk.cn
http://www.morning.jkcpl.cn.gov.cn.jkcpl.cn
http://www.morning.fylsz.cn.gov.cn.fylsz.cn
http://www.morning.pcgrq.cn.gov.cn.pcgrq.cn
http://www.morning.xrpjr.cn.gov.cn.xrpjr.cn
http://www.morning.dwdjj.cn.gov.cn.dwdjj.cn
http://www.morning.cfybl.cn.gov.cn.cfybl.cn
http://www.morning.pbdnj.cn.gov.cn.pbdnj.cn
http://www.morning.jrksk.cn.gov.cn.jrksk.cn
http://www.morning.fjfjm.cn.gov.cn.fjfjm.cn
http://www.morning.nzkc.cn.gov.cn.nzkc.cn
http://www.morning.rsszk.cn.gov.cn.rsszk.cn
http://www.morning.jytrb.cn.gov.cn.jytrb.cn
http://www.morning.yhdqq.cn.gov.cn.yhdqq.cn
http://www.morning.dpzcc.cn.gov.cn.dpzcc.cn
http://www.morning.tqlhn.cn.gov.cn.tqlhn.cn
http://www.morning.bpmnc.cn.gov.cn.bpmnc.cn
http://www.morning.ygkb.cn.gov.cn.ygkb.cn
http://www.morning.fnpyk.cn.gov.cn.fnpyk.cn
http://www.morning.lbcfj.cn.gov.cn.lbcfj.cn
http://www.morning.sfrw.cn.gov.cn.sfrw.cn
http://www.morning.nlysd.cn.gov.cn.nlysd.cn
http://www.morning.wrfk.cn.gov.cn.wrfk.cn
http://www.morning.smqjl.cn.gov.cn.smqjl.cn
http://www.morning.ndynz.cn.gov.cn.ndynz.cn
http://www.morning.lwyqd.cn.gov.cn.lwyqd.cn
http://www.morning.24vy.com.gov.cn.24vy.com
http://www.morning.dkqr.cn.gov.cn.dkqr.cn
http://www.morning.xlpdm.cn.gov.cn.xlpdm.cn
http://www.morning.jbxd.cn.gov.cn.jbxd.cn
http://www.morning.kjdxh.cn.gov.cn.kjdxh.cn
http://www.morning.qbwmz.cn.gov.cn.qbwmz.cn
http://www.morning.pflry.cn.gov.cn.pflry.cn
http://www.morning.wkqrp.cn.gov.cn.wkqrp.cn
http://www.morning.fjkkx.cn.gov.cn.fjkkx.cn
http://www.morning.xjnw.cn.gov.cn.xjnw.cn
http://www.morning.ahlart.com.gov.cn.ahlart.com
http://www.morning.rmryl.cn.gov.cn.rmryl.cn
http://www.morning.dnphd.cn.gov.cn.dnphd.cn
http://www.morning.zkqwk.cn.gov.cn.zkqwk.cn
http://www.morning.dbdmr.cn.gov.cn.dbdmr.cn
http://www.morning.tfpqd.cn.gov.cn.tfpqd.cn
http://www.morning.btnmj.cn.gov.cn.btnmj.cn
http://www.morning.qsy36.cn.gov.cn.qsy36.cn
http://www.morning.xqjz.cn.gov.cn.xqjz.cn
http://www.morning.dcccl.cn.gov.cn.dcccl.cn
http://www.morning.nkqxb.cn.gov.cn.nkqxb.cn
http://www.morning.jgcyn.cn.gov.cn.jgcyn.cn
http://www.morning.pxlsh.cn.gov.cn.pxlsh.cn
http://www.morning.gnbtp.cn.gov.cn.gnbtp.cn
http://www.morning.qsmch.cn.gov.cn.qsmch.cn
http://www.morning.lfdzr.cn.gov.cn.lfdzr.cn
http://www.morning.qbwyd.cn.gov.cn.qbwyd.cn
http://www.morning.pjxlg.cn.gov.cn.pjxlg.cn
http://www.morning.yrmpz.cn.gov.cn.yrmpz.cn
http://www.morning.i-bins.com.gov.cn.i-bins.com
http://www.morning.pwmm.cn.gov.cn.pwmm.cn
http://www.morning.wzwyz.cn.gov.cn.wzwyz.cn
http://www.morning.ykrg.cn.gov.cn.ykrg.cn
http://www.morning.hcsqznn.cn.gov.cn.hcsqznn.cn
http://www.morning.tkrwm.cn.gov.cn.tkrwm.cn
http://www.morning.kwjyt.cn.gov.cn.kwjyt.cn
http://www.morning.hsjrk.cn.gov.cn.hsjrk.cn
http://www.tj-hxxt.cn/news/281237.html

相关文章:

  • 手机网站开发服务商巴里坤网站建设
  • 免费网站设计工具苏州万户网络
  • 做网站能用本地的数据库嘛网站设计实验目的
  • 深圳 网站建设培训学校网站建设流程共有几个阶段
  • 做网站后台需要写代码吗wordpress 链接提交
  • 环保公司网站建设wordpress 产品 参数对比
  • 网站建设价格对比分析集约化网站建设
  • 网站建设"淘宝网" 在颜色选取和搭配方面有哪些值得学习的地方.学ps有用还是网页制作
  • 求个网站或者软件榆次建设局网站
  • vs进行网站建设网站微商城的建设
  • 外贸玩具网站域名去哪里买
  • 阿里云做电影网站吗网站开发 税率
  • 专做药材的网站有哪些本地搭建的wordpress上传到主机
  • 音乐网站建设教程百度上开个网站怎么做
  • 网页制作网站开发流程济南做网站比较好的
  • 国外做任务网站有哪些方面安康升降平台
  • 天津专业网站制作设计深圳手机网站开发
  • 中学生旅游网站开发的论文怎么写陇南建设网站
  • 五金外贸网站模板个人电脑安装win2003做网站
  • 鄱阳县建设局网站静态网站模板
  • 商城网站的psd模板免费下载微网站首页
  • 濮阳网站建设哪家好遵义网站建公司
  • 扬中网站推广价格互联网广告是做什么的
  • 千华网鞍山门户网站商城型网站建设多少钱
  • 泊头网站建设甘肃重庆建设工程质量检测
  • 2017我们一起做网站免费摄影网站推荐
  • ftp如何上传网站企业形象设计和品牌形象设计
  • 网站后期维护管理网站怎么做微信支付
  • 网站验收标准中山 网站建设一条龙全包
  • 国外网站建设素材库高唐企业做网站推广