第一个接收事件的是window -》 document -》html js获得html节点 document.documentElement;=》body
捕获 =》 目标阶段=》 冒泡阶段
event
event.preventDefault() 阻止默认事件 比如阻止a标签跳转
event.stopPropagaition() 阻止冒泡
event.stoplmmediatePropagarion() 注册两个事件 在某个函数中加上他就可以阻止另一个函数执行
event.currentTarget() 当前当前绑定的事件的元素
event.target() 子元素
e.currentTarget指的是注册了事件监听器的对象,而e.target指的是该对象里的子对象,也是触发这个事件的对象
自定义事件 let a=new Event('our') CustomEvent 多一个参数
element.addEventListener('our',()=>{}{})
触发 element.dispatchEvent(a) //注意这里是事件对象 而不是事件名
http 主要特点
简单快速 灵活 无连接 无状态
每一个资源都是一个固定资源符 只需要解析固定的url就可以了
头部有数据类型 通过http协议可以进行不同数据类型的传输
连接一次传输完就断开
客户端和服务端应该是两个身份的但是只靠http协议是不能让服务端区分两次连接客户端是不是同一个人的
http报文组成部分
请求报文 响应报文
请求行 请求头 空行 请求体 状态行 响应头 空行 响应体
请求行 http方法post get 版本号
请求头 是一些key value 请求体是数据
http方法
post 和get的区别 url 不安全 自动缓存 回退无害
http状态码
1** 指示信息 表示已接收
2** 成功 请求接收成功
3** 重定向
4** 客户端错误 请求有语法错误或请求无法实现
5** 服务器错误
200请求成功
206 发送了一个带有range头的get请求
301 所请求的页面已转移到了新的url
302 所请求的页面已经临时转义到新的url
304 客户端有缓冲的文档并发送了一个条件性请求 服务端告诉客户端原来的缓冲文档还可以继续使用
400 请求有语法错误 不能被服务器理解
401 请求未经授权
403 对被请求页面的访问被禁止
404 请求资源不存在
500 服务器发生不可预期错误原来的缓冲文档还可以继续使用
503 请求未完成 服务器临时过载或当机
什么是持久连接
持久连接 使用keep-Alive模式
什么是管线化
持久连接
请求1=》响应1=》请求2=》响应2=》请求3=》响应3
管线化
请求1=》请求2=》请求3=》响应1=》响应2=》响应3
管线化的机制是通过持久连接完成的 http协议要1.1以上
第一次最好不要用因为可能服务器不支持
get 和head请求能用 post有限制
原理就是将请求打包
原型链
构造函数的prototype 就是原型对象
function.prototype=实例._prop_
原型对象的constructor =function
每个实例化的对象 都会有一个原型对象 得到他 实例_prop_ 就可以了 也就是 构造函数的原型对象 prototype
实例化的对象逐层向上找原型对象 直到object.propotype的过程或者说这条线就是原型链
https://blog.csdn.net/cc18868876837/article/details/81211729 这个作者写的更详细
通常继承 都是类 实例化等 有时是 我们需要完全拷贝一个对象
可以使用这种方式
两个实例化的对象A B
object.create(B.__proto__)
object.assign(A,B)