JS高级程序设计第三版中的JS对象序列化疑惑
obj = {a: 11, b: 22, c: 0}json = JSON.stringify(obj, function(k,v){ if(typeof v === \u0026#39;number\u0026#39;){ if(v !== 0){ return \u0026#39;0\u0026#39; + v }else{ return // 或者 return undefined 或者省略 } }else{ return v }})这段代码正确结果是\u0026#39;{"a":"011","b":"022"}\u0026#39;在 Firefox 3.5 中是\u0026#39;{"a":"11","b":"22"}\u0026#39;你可以把 return \u0026#39;0\u0026#39; + v 改成 return \u0026#39;qwerty\u0026#39;,在Firefox 3.5 中结果不会变。因为 ff3.5 只判断 return的结果是不是 undefined,是的话就忽略这个属性(c: 0), 不是就 pass。而正确的处理是:如果 return 了 undefined,就忽略这个属性,否则用 return 的值(a: \u0026#39;011\u0026#39;)替代原有属性(a: 11)。
推荐阅读
- 健康■动起来!第三届健康江苏健步走来了
- 环球车讯网|全新大众途观,外观的设计更加时尚,更加大气,“满满”的高级感
- 中东问题|
- |龙城高级中学建校地址确定 总用地面积8.24万平
- 哈弗H6|13万预算是买长安CS75PLUS还是第三代哈弗H6?
- 汽车|五夺销冠后,这家企业再推府系第三代升级之作,致敬广州东
- 想寒假的时候一个月在家准备计算机二级的office高级应用,但是不知道买啥书比较好~~~?
- 趣头条|试驾第三代全新B70
- 第三方认证机构例如CA机构凭啥可信
- 趣头条|实用的代步工具,第三代哈弗H6!
