一、JSON
真正的json
-
json数据,可以放在json文件中,也可以出现在编程语言中
- 是一种文本数据,有专门的文件存储,.json文件
- 类似于:记事本文件:.txt
- 有固定的语法要求
-
json是用来做什么的:通用数据
- 是一种文本数据,用来作为服务器端和客户端数据交互时,存储数据
- 客户端A:英语,中文,json
- 说话:说什么?听不懂,得有一个通用语言:json
- 服务端B:中文,中文,json
- 客户端A:英语,中文,json
- 是一种编程语言中的通用数据,任何一门编程语言,都能识别,都能解析,都认识
- 是一种文本数据,用来作为服务器端和客户端数据交互时,存储数据
编程语言中的json
- js中的json,类似于数组和对象,只不过还需要遵守json的要求,js中有提供json和数组对象的转换方法
- 日常在js中,所谓的json数组,json对象,其实只是参考了json数据的名字,别名,起了个名字
- 自身其实就是编程语言中的数组或对象
- php中的json,字符,只不过可以将php的数组和对象,通过一些方法转成json的格式
- 任何一门编程语言中,都提供有将自身的某些数据,转成json的方法
真正的json的格式
- 必须是字符
- 不允许使用双引号包裹,必须是单引号或反引号(json文件中不需要,json文件自身就是文本文件)
- 如:
- 在html文件中写css需要style标签,在css文件中不需要
- 在html文件写js需要script标签,在js文件中不需要
- 如:
- 不允许使用双引号包裹,必须是单引号或反引号(json文件中不需要,json文件自身就是文本文件)
- json的格式,类似于js中的对象和数组
- 键值对的key,必须使用双引号包裹
- 在json中不允许出现函数、undefined、NaN,可以出现null
- 不允许出现没有意义的逗号
js对象和json的转换
- json字符转对象:这个字符就得符合json的格式
- JSON.parse(str);
- 需要注意json的规则
- JSON.parse(str);
- 对象转json字符:这个对象只需要符合js中对象的规则即可
- JSON.stringify(obj);
- 需要注意js对象或数组的规则
- 函数,undefined被忽略
- NaN,被转成null
- JSON.stringify(obj);
js对象和json的转换场景
-
拿到后端传过来的json数据后,将json数据转成js对象,方便前端js处理
var o = JSON.parse('{"name":null}'); console.log(o);
-
如果需要将js对象传给后端使用,后端不能识别js对象,但可以识别json数据,需要将js对象转成json数据,发给后端
var s = JSON.stringify({name:"admin"}) console.log(s);
什么是json
- https://www.jianshu.com/p/658ac368e478
二、面向对象编程
-
面向对象的分析和设计
-
面向对象
-
分析和设计
- 需求:拆分,大规模的分工
- 功能之间,精密的协作
- 开电商公司
- 销售部
- 市场部
- 技术部
- 人力行政部
- 财务部
- 淘宝网站
- 订单管理系统
- 商品管理系统
- 通信系统
- 开电商公司
-
分工:将需求,拆分,拆分到能直接解决
- 拖拽
- 按下事件
- 移动事件
- 抬起事件
- 拖拽
-
协作:
- 拖拽
- 按下事件
- 获取事件对象
- 移动事件
- 拿到自己的事件对象和按下的事件对象
- 抬起事件
- 清除移动
- 按下事件
- 拖拽
-
-
面向的三大特点
- 封装
- 继承
- 多态
-
对象的创建
- 字面量
var obj = {}
- 构造函数
- 构造内置函数
var obj = new Object()
- 构造自定义函数
var obj = new Fn();
- 构造内置函数
- 字面量
-
工厂模式创建对象
- 构造自定义函数,关键字new执行函数
- new的执行原理
- 在内存中创建了一个新对象
- 将new执行的函数中的this指向了这个新对象
- …
- 检查原函数中,是否主动返回对象,如果没有,返回1~3步中,创建的这个新对象