js复习
一,兼容
1,html5-shim
2,能力监测
二,数组的深拷贝
1,slice
2,concat
3,es6展开运算符 […arr]
三,对象的深拷贝
1,es6展开运算符{…object}
2,object.assign
四,target and currentTarget
1,event.target 触发事件的元素
2,event.currentTarget 绑定事件的元素
五,时间格式化:moment库
六,对象实例化的过程
1,声明一个空对象
2,空对象的__proto__等于构造函数的prototype
3,构造函数.call(空对象)
七,原型链
- 实例原型的constructor指向构造函数
- 实例对象的constructor指向构造函数
- 构造函数的prototype指向实例原型的prototype
- 实例对象的__proto__指向实例原型的prototype
- 实例原型的__proto__指向Object.proptotype
- Object.prototype的__proto__指向null
八,作用域链
1,作用域链表示从当前执行代码所处环境处开始,慢慢找到他的父执行环境(父执行环境就是当前环境所处的哪个环境)。代码执行过程中,首先会在当前作用域寻找所要使用的变量或函数,找到了继续执行,找不到就向上找(即找它的父执行环境),直到找到为止
九,跨域
- jsonp
1. 前端生成script标签,并传入一个回调函数
2. 声明个与回调函数同名的函数
3. 后端返回一个函数调用
4. 执行函数
- CORS 跨域资源共享 ,后台设置响应头信息,只能设置一个,或者使用*通配符,当有多个跨域请求时,可以写一个逻辑操作
1. Access-Control-Allow-Origin
2. Access-Control-Allow-Methods
// 允许跨域访问的域名:若有端口需写全(协议+域名+端口),若没有端口末尾不用加'/'
response.setHeader("Access-Control-Allow-Origin", "http://www.domain1.com");
// 允许前端带认证cookie:启用此项后,上面的域名不能为'*',必须指定具体的域名,否则浏览器会提示
response.setHeader("Access-Control-Allow-Credentials", "true");
// 提示OPTIONS预检时,后端需要设置的两个常用自定义头
response.setHeader("Access-Control-Allow-Headers", "Content-Type,X-Requested-With");
3.代理
注意: proxy代理仅在开发环境使用,打包上线则不能使用,必须通过服务器代理
十,请求方法
1,get 查
2,post 增
3,put 改
4,delete 删
5,options 是一个探测请求
十一,请求头信息
- Accept
- content-type
- Origin
- Referer :防盗令主要借助此字段
- User-Agent :BOM 可以查看手机类型和用户数量