1、对象前端
1.对象的功能 :想要存数据的时候写数据 对象就是用来存数据的; 对象能够储存结构很是复杂的数据;编程
扩展: 基本数据类型:string number undefined null Boolean json
引用数据类型: 数组 函数 后端
数组用映射的方式存储数据 包含 key value键值对 是有序结构 key是自动生成自动 递增的东西 eg:var arr = [1,2,3,4,5] 数组
对象是一个复杂映射 是无需自定义结构 能够快速的对数据进行查找; 避免重名的尴尬; 语义化更好了;浏览器
2.怎么把数据存入对象之中? 抽象;结构化数据;安全
对象里面放的抽象的数据 优点:有自定义的名称 cookie
拓展: json 属于后端的术语 后端返回给前端的是字符串 json外部用{}包裹函数
2、this工具
this指向存在两种状况,一是在普通函数中,二是在构造函数中。this关键字只出如今函数体中。
(一)普通函数:
1.this指向:在函数之中(普通函数),谁是当前函数的调用者(调用者),函数体内this的指向就指向谁
2.全部没有xxx(对象).调用的函数 都是window所属的函数
全部回调函数默认状况下,this指向都为window;
(二)构造函数:
1.如何区分一个函数是普通函数仍是构造函数? 看调用方式 是否用new调用;
2.构造函数为了面向对象编程而服务;
3. 构造函数:能够创造自定义对象的函数;
4. instanceof 辨别某个对象来自于哪一个构造函数
eg: function Foo(){ };
Foo函数的实例化对象 属于两个构造函数 object / Foo
构造函数构造了一个对象;
5. 如何向这个构造出来的对象(实例对象)编写方法;
eg: function Foo(){
// 构造函数内部,给对象编程,放入属性和方法;
//更改了构造函数内部的this指向;
//this 进行编程
//构造函数实际上是对this(实例化对象)进行编程的地方
}
实例化对象都有名字
实例化对象和构造函数内部的this指向是一个对象
构造函数内部的this指向,指向实例化对象,
6.this指向只找第一层函数 ,就近原则
总结:this指向状况
1.普通函数
2.构造函数 1.没有xxx.调用的函数一概指向window 2.就近原则
3、面向对象的工具
1.面向对象的工具:1.构造函数 2.原型对象
2.原型是干吗的,是公用的。
3.任意函数的原型:prototype;
4.constructor 代表了原型属于哪一个函数,能够更改,通常不改
5.__proto__原型指针 原型链的原理
6.把引用类型放在原型之中的好处
js自己有一个找寻机制
原型链 : 根据原型规则进行数据查询
1.实例化对象之中 存在 原型指针
2.对象访问数据的时候 会根据原型链规则进行数据查询(原型链),进行数据查找
访问对象之中一个数据的时候
1.若是有 直接返回
2.若是没有 查看 是否存在原型指针__proto__ 若是没有 undefined
3.若是没有那么沿着指针继续查找 返回原型内的数据
每一个实例化对象之中 必定有一根原型指针指向当前构造函数的原型对象
咱们不把数组或对象直接放在原型上
原型对象上尽可能别放引用类型
在面向对象编程的时候 咱们推荐把数据放在构造函数里(确保每一个对象的数据来源独立),把方法放在原型之中(确保方法能够复用)
4、http,https ,cookie
http:协议
https耗性能 但安全
两者是先后端交互或通讯的协议
1.保证数据完整性 传输结束以后 断开链接
2.保证高性能地数据传输
3.即用即走 缺点:不知道你是谁 无状态协议
由于无状态协议容易形成很是糟糕的用户体验 因此咱们要给每一个http协议打上标签
谁对cookie有操做权限?
此次http通过的全部人都对cookie有操做权限 前端 后端 ;
CSRF(跨站点请求伪造) XSS (脚本注入) 可能会遭受两者攻击,
加密后放在前端的cookie 叫 tocken
cookie 是 http 的身份牌
GET 只有header,没有body; POST 才有 body;
1.header 部分用来验证
2.body 用来装载内容
一旦在浏览器上设置了cookie 那么这条cookie 就会跟随全部对应的域名的http请求
每一个域名都有一套独立的cookie cookie遵循同源策略
cookie的特性
1.时效性
2.cookie是纯文本
3.cookie 大小限制 4kb
4.条数限制 50条
5.同源策略 访问路径是有限制的
cookie的本质 :浏览器建立的一个带有数据的文件