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

怎么做app界面设计长春seo排名优化

怎么做app界面设计,长春seo排名优化,网页设计心得体会50字,中国常州网官网文章目录 JSON 的由来JSON 的基本语法JSON 的序列化简单使用stringify 方法之 replacerstringify 方法之 replacer 参数传入回调函数stringify 方法之 spacestringify 方法之 toJSONparse 方法之 reviver 利用 stringify 和 parse 实现深拷贝 json 相信大家一定耳熟能详#x… 文章目录 JSON 的由来JSON 的基本语法JSON 的序列化简单使用stringify 方法之 replacerstringify 方法之 replacer 参数传入回调函数stringify 方法之 spacestringify 方法之 toJSONparse 方法之 reviver 利用 stringify 和 parse 实现深拷贝 json 相信大家一定耳熟能详但是其实 json 在 JavaScript 中很多细节本文就来详细讲解 json 在 JavaScript 中那些隐藏的秘密 JSON 的由来 JSON 是一种数据格式而不是编程语言目前广泛用于客户端和服务器之间传输的数据格式JSON 全称 JavaScript Object NotationJavaScript 对象符号 JSON 是由Douglas Crockford构想和设计的一种轻量级资料交换格式算是 JavaScript 的一个子集虽然 JSON 被提出来的时候是主要应用 JavaScript 中但是目前已经独立于编程语言可以在各个编程语言中被广泛的使用 JSON 的基本语法 JSON 支持三种类型的值 简单值数字、字符串(不支持单引号)、布尔类型、null 类型对象值由key、value组成key是字符串类型并且必须添加双引号值可以是简单值、对象值、数组值数组值数组的值可以是简单值、对象值、数组值 tipsJSON 里面不能添加注释具体的写法大家应该都知道这里就不写示例代码了 JSON 的序列化 相信这个大家都知道在 JavaScript 中的 JSON 对象上存在两个方法 stringify 和 parse就可以实现序列化 序列化是将数据结构或对象转换为符合 JSON 格式的字符串的过程 简单使用 const obj {name: 张三,age: 18,frienfs: [{ name: 李四, age: 20 },{ name: 王五, age: 22 }],hobbies: [篮球, 足球, 乒乓球] }// 使用 stringify 方法转为 JSON 格式的字符串 const str JSON.stringify(obj)// 使用 parse 方法将一个 JSON 格式的字符串转为一个对象 const newObj JSON.parse(str)stringify 方法之 replacer stringify 方法的第一个参数大家都知道那第二个参数(replacer)了解吗 replacer 是一个可选参数replacer 的作用是指定需要想转换的值是一个数组或 null(全部转换) 如下 const obj {name: 张三,age: 18,friends: [{ name: 李四, age: 20 },{ name: 王五, age: 22 }],hobbies: [篮球, 足球, 乒乓球] }// 正常转换 const str1 JSON.stringify(obj) console.log(str1: , str1)// 排除 friends 和 hobbies const str2 JSON.stringify(obj, [name, age]) console.log(str2: , str2)结果如图 此时就可以发现只转换了我们需要的部分当我们存在这样的需求的时候使用这个参数是非常方便的 tips所有以 symbol 为属性键的属性都会被完全忽略掉即便 replacer 参数中强制指定包含了它们 stringify 方法之 replacer 参数传入回调函数 上述例子中可以一定程度上实现一些额外的需求但是针对高度自定义的需求还是有点无能为力那么此时我们可以给其参数改为传入一个回调函数 传入一个回调函数时会接收两个参数key 和 value而每一次进行序列转换的时候就会执行一次如下 const obj {name: 张三,age: 18,friends: [{ name: 李四, age: 20 },{ name: 王五, age: 22 }],hobbies: [篮球, 足球, 乒乓球] }const str JSON.stringify(obj, (key, value) {console.log(key, value)return value })console.log(str)执行结果如图 比如我们需要给 name 的值添加一个 符号并年龄 1如下 const obj {name: 张三,age: 18,friends: [{ name: 李四, age: 20 },{ name: 王五, age: 22 }],hobbies: [篮球, 足球, 乒乓球] }const str JSON.stringify(obj, (key, value) {if (key name) {return value }if (key age) {return value 1}return value })console.log(str)结果如图 stringify 方法之 space 此方法除了第二个参数还存在第三个参数(space)此参数的作用为指定缩进用的空白字符串用于美化输出 当 space 是一个数字时它代表有多少的空格上限为 10; 该值若小于 1则意味着没有空格如下 const obj {name: 张三,age: 18,friends: [{ name: 李四, age: 20 },{ name: 王五, age: 22 }],hobbies: [篮球, 足球, 乒乓球] }// 正常转换 const str1 JSON.stringify(obj) console.log(正常转换: , str1)// 2个空格 const str2 JSON.stringify(obj, null, 2) console.log(2个空格: , str2)结果如图 此时输出的结果就不是单纯的一行字符串而是经过美化的格式在一些调试查看数据的时候还是非常好用的 当 space 是一个字符串时则每一级别会比上一级别多缩进该字符串或该字符串的前 10 个字符如下 const obj {name: 张三,age: 18,friends: [{ name: 李四, age: 20 },{ name: 王五, age: 22 }],hobbies: [篮球, 足球, 乒乓球] }// 正常转换 const str1 JSON.stringify(obj) console.log(正常转换: , str1)// 空格时 const str2 JSON.stringify(obj, null, ) console.log(空格时: , str2)// 使用制表符\t来缩进 const str3 JSON.stringify(obj, null, \t) console.log(制表符\t: , str3)// 字符长度超出 10 const str4 JSON.stringify(obj, null, aaabbbcccdddeee) console.log(字符长度超出 10: , str4)正常转换时如图 空格时如图 制表符时如图 字符长度超出 10 时如图 stringify 方法之 toJSON 如果一个被序列化的对象拥有 toJSON 方法那么该 toJSON 方法就会覆盖该对象默认的序列化行为不是该对象被序列化而是调用 toJSON 方法后的返回值会被序列化 这个方法还是很好理解的就是原来是转换原对象但是如果有这个方法的话就会以我们这个方法的返回值为基准如下 const obj {name: 张三,age: 18,friends: [{ name: 李四, age: 20 },{ name: 王五, age: 22 }],hobbies: [篮球, 足球, 乒乓球],toJSON: function () {// 返回数字return 111} }console.log(toJSON: , JSON.stringify(obj))结果如图 同样可以更换为其他对象如下 const obj {name: 张三,age: 18,friends: [{ name: 李四, age: 20 },{ name: 王五, age: 22 }],hobbies: [篮球, 足球, 乒乓球],toJSON: function () {// 返回数字return {name: 李白,descripton: 一个浪漫的人}} }console.log(toJSON: , JSON.stringify(obj, null, 2))结果如图 parse 方法之 reviver reviver 也是一个函数执行时机在在 parse 函数返回之前所以也可也来进行拦截或者说修改解析前的原始值 使用如下 const str {name:张三,age:18,friends:[{name:李四,age:20},{name:王五,age:22}],hobbies:[篮球,足球,乒乓球]}const obj JSON.parse(str, (key, value) {if (key age) {return value 2}return value }) console.log(obj)输出如图 在生成的对象之后我们也可以发现年龄是发生了变化的 利用 stringify 和 parse 实现深拷贝 stringify 和 parse 搭配使用的时候可以完成深拷贝不敢存在一些限制比如函数循环引用symbol 等等一些清空都是无法使用这种方式完成深拷贝的 只需要先使用 stringify 方法将对象转为 JSON 字符串在使用 parse 方法进行解析即可配合使用如下 const obj {name: 张三,age: 18,friends: [{ name: 李四, age: 20 },{ name: 王五, age: 22 }],hobbies: [篮球, 足球, 乒乓球] }const obj2 JSON.parse(JSON.stringify(obj)) console.log(obj2: , obj2)console.log(修改 obj2 的 name 属性的值为田七)obj2.name 田七console.log(obj: , obj) console.log(obj2: , obj2)结果如图 可以看到obj 并没有因为修改了 obj2 的值而受到影响在一些简单的 JSON 形式的数据的对象时使用此方法是一种非常不错的选择
http://www.hkea.cn/news/14554208/

相关文章:

  • 怎样做网站标题的图标那里可以免费做网站
  • 网站建设讯息好用的视频播放器app
  • 怎么做网站解析求职简历模板免费
  • 新泰网站制作公司东莞网络营销策划
  • 中国电建市政建设集团有限公司网站注册网站会不会有问题
  • 嘉兴网站推广门户网站建设背景
  • 健康咨询类网站模板购物京东商城
  • 淘宝客网站免费建站文件错误wordpress
  • 新闻门户网站源码电商网站建设优缺点
  • 北京网站建设报价做网站PPPOE网络可以吗
  • 河北搭建营销型网站制作游戏需要多少钱
  • 做机器设备的网站成都网站建设的公司哪家好
  • 青岛建站推广秦皇岛哪里做网站
  • 做微课常用的网站德州王霞网站建设
  • 深圳建筑公司招聘信息seo怎么发布外链
  • dede网站百度统计怎么做wordpress搬家出问题
  • 盘锦做网站个人网站备案通过后
  • 网站组成费用wordpress没有重置密码链接
  • 杨凌企业网站建设环保网站建设多少钱
  • 网站开发个人所得税公司网站设
  • 网站字体咸宁网站制作公司
  • 建设银行网站总是崩溃个人网站备案名字不同
  • 柳州企业网站制作简单代码制作
  • 网站集约化建设力度网站建设哪儿好
  • 网站制作设计说明女装网站建设费用预算
  • 重庆网站建安阳网站建设哪家好
  • 北京建设工程交易中心招标网网页优化最为重要的内容是
  • 外贸网站平台都有哪些 免费的专业零基础网站建设教学服务
  • 做平面设计兼职的网站中国材料价格网
  • 舟山集团网站建设企业展厅设计公司100%正品保障