Day29

真正的JSON

  1. json数据,可以放在json文件中,也可以出现在编程语言中

    • 是一种文本数据,有专门的文件(.json)存储
    • 有固定的语法要求
  2. json作用:通用数据
    • 是一种文本语句,用来作为服务器端和客户端数据交互时,存储数据
    • 时一种编程语言中的通用数据,任何一门编程语言,都可以识别解析

编程语言中的JSON

  1. js中的json,类似于数组和对象,只不过还需要遵守json的要求,js中有提供json和数组的转换方法

    • 日常在js中,所谓的json数组,对象,其实只是参考了json数据的名字,别名,

    • 自身其实就是编程语言中的数组或对象

  2. php中的json,字符,只不过可以将php的数组和对象,通过一些方法转成json格式

  3. 任何一门编程语言中,都提供有将自身的某些数据,转成json的方法

真正的JSON格式

  1. 必须时字符

    • 不允许使用双引号包裹,必须时单引号或反引号(json文件中不需要,json文件自身就是文本文件);

      • 例如:

        • 在html文件中写css需要style标签,在css文件中不需要
        • 在html文件中写js需要script标签,在js文件中不需要
  2. json的格式,类似于js中的对象和数组
  3. 键值对的key,必须使用双引号包裹
  4. 在json中不允许出现函数、undefined、NaN、可以出现null
  5. 不允许出现没有意义的逗号

js对象和json的转换

  1. json字符转对象:这个字符需要符合json的格式

    JSON.parse(str) 注意json的规则

  2. 对象转json:对象只需要符合js中对象的规则即可

    JSON.stringify(obj);需要注意js对象或数组的规则函数,undefined被忽略NaN,被转成null
    

js对象和json的转换场景

  1. 拿到后端传过来的json数据后,将json数据转成js对象,方便前端处理

    var o = JSON.parse('{"name":null}')
    console.log(o);
    
  2. 如果需要将js对象传给后端使用,后端不能识别js对象,但可以识别json数据,需要将js对象转成json数据,发给后端

    var s = JSON.stringify({name:"admin"})
    console.log(s);
    

什么是json,参考一下链接

​ - https://www.jianshu.com/p/658ac368e478

面向对象编程

  1. 面向对象的分析和设计

    • 面向对象
    • 分析和设计
    • 分工:将需求,拆分,直到能直接解决
    • 协作
  2. 面向对象的三大特点:

    • 封装
    • 继承
    • 多态
  3. 对象的创建

    • 字面量

      var obj = {}

    • 构造函数

      • 构造内置函数

        var obj = new Object()

      • 构造自定义函数

        var obj = new Fn()

  4. 工厂模式创建对象

    • 构造自定义函数,关键字new执行函数
    • new的执行原理
      • 在内存中创建了一个新对象
      • 将new执行的函数中的this指向了这个新对象
      • 执行函数内的代码,并将这个对象的__proto__指向当前函数的prototype
      • 检查原函数中,是否主动返回对象,如果没有,返回前3步中创建的这个新对象
  5. 原型的概念

    • 多次new同一个构造函数时,会在内存中产生多个同名函数,但他们来自于同一个模板,浪费内存

    • 原型的出现,就是为了解决构造函数的缺点,可以让我们更合理,方便的给实力添加方法,否则构造函数只能给实例添加属性,不能合理的添加方法

    • 概念:

      • 每一个函数(箭头函数除外)天生自带一个属性prototype,称之为原型对象或者原型,是一个引用类型数据
      • 在函数的prototype中存储的内容,不是给当前函数使用的,而是给将来new函数之后得到的实例对象使用的
      • 每一个对象都天生自带一个属性:_proto_;称之为原型链对象(隐式原型),是一个引用类型数据
      • 如果是构造函数创建出来的实例对象,这个对象是由哪个构造函数 new 出来的,那么这个对象的 _proto_ 就指向这个构造函数的prototype
    • 结论:

      • 属性直接写在构造函数体内
      • 方法写在构造函数的原型上

js - JSON构造函数相关推荐

  1. 微信小程序 - 新建页面以及 .js .json .wxml .wxss 的作用

    在小程序中,一个完整的页面是由 .js .json .wxml .wxss 四个文件组成: .js 里面编写一些生命周期钩子,事件处理,全局数据- .json 里面编写一些页面配置,页面的 .json ...

  2. 微信小程序一键创建js,json,wxml,wxss

    在写小程序创建项目的时候每一个一般都会有 js,json wxml ,wxss 一个选择一个一个创建 也可以一键创建 创建的时候选择Component 输入名字 这四个就一下创建了 这样创建写的时候j ...

  3. [js] json和对象有什么区别?

    [js] json和对象有什么区别? JSON 是对象,但对象不一定是 JSON.对象是由属性和属性值组成,也就是 KEY->VALUE 对. 对象中的 value 可以是任意的数据类型,包括函 ...

  4. 在线HTML转JS/JSON工具

    在线HTML转JS/JSON工具 在线HTML转JS/JSON工具 本工具支持将HTML转JS/JSON工具,将HTML字符串转成JS的变量形式或JSON数组形式,一般用于JS字符串拼接. https ...

  5. node mysql json_Node.js JSON模块用法实例分析

    本文实例讲述了Node.js JSON模块用法.分享给大家供大家参考,具体如下: 一.JSON.stringify语法: JSON.stringify(value [, replacer] [, sp ...

  6. echarts国内各省份地图js/json文件,全球地图js文件/汉化,字符云js文件

    echarts国内各省份地图js/json文件,全球地图js文件/汉化,字符云js文件 下载链接 世界地图 中国地图 国内各省份地图 字符云 下载链接 https://github.com/FuHan ...

  7. js 自定义构造函数

    js 自定义构造函数 自定义构造函数 根据固定的模板,创建一个对象,创建的对象有构造函数规定的属性和方法. 潜规则:构造函数的首字母需要大写 <script>//自定义构造函数//就是根据 ...

  8. php 跨域 json,PHP json格式和js json格式 js跨域调用实现代码

    先看一个js函数 function jsontest() { var json = [{'username':'crystal','userage':'20'},{'username':'candy' ...

  9. JS数据类型 构造函数 原型链

    js数据类型 基本数据类型:string   undefined   null  boolean  number 引用数据类型  Object  array  function 二者的区别 基本数据类 ...

  10. js json数组_JaveScript对象篇和数组篇

    对象类型 1.对象 一种事物的抽象 对象打包数据后的信息查找速度和信息传输速度都会得到提高 多个相似对象可以再次抽象成类 对象是类的具象化,实例化 类是对象的抽象化 js中没有类的概念,但是js使用函 ...

最新文章

  1. 快讯 | 首期“医工结合系列研讨会”汇聚清华力量,共促医工融合发展
  2. Dataguard failover切换应用redo操作
  3. css实现圆形钟表,js+css3圆形指针时钟代码
  4. 【arc101】比赛记录
  5. ACNet论文阅读笔记
  6. 间歇性掉帧卡顿_电脑卡顿问题靠它解决,我只能帮你到这儿了
  7. C++ 通讯录设计(一)
  8. php v9开发网站,phpcms开发步骤
  9. php写入rabbit速度,RabbitMQ 入门教程(PHP) 实现延迟功能
  10. Mono源代码学习笔记:Console类(五)
  11. this(C# 参考)
  12. Android开发笔记(五十七)录像录音与播放
  13. 阿里开源物联网操作系统 AliOS Things 3.0 发布,集成平头哥 AI 芯片架构!
  14. jq点击更多收起效果
  15. resiprocate 之repro使用
  16. Springboot初始化过程(1.5.9.RELEASE)(一)
  17. pythonturtle库填充_python turtle库笔记
  18. python自动排版公众号_如何实现公众号排版自动化?微信公众号一键排版软件推荐...
  19. 皮尔森 统计学相关性分析_【R语言】读懂Pearson相关分析结果
  20. ③读后感之《异类不一样的成功启示录》格拉德威尔

热门文章

  1. Tip3 百度网盘PC版去除广告和游戏运营位教程(百度网盘破解教程)
  2. 基佬大乱斗自建服务器,玩家必看干货基佬大乱斗怎么联机实现双人作战
  3. 照片放大后怎么变清晰?
  4. Google安装鼠标手势插件方法
  5. ILSVRC2012下载+训练
  6. 如何将视频文件转为图片
  7. 基于stm32及sim800c sim868 实现的远程控制 小程序控制模块 源码 移植过程简介
  8. C#控制台程序关闭快速编辑
  9. WebView截取长图
  10. idea中按住ctrl+滚轮改变字体大小