- Cookie的同源策略如何描述,如何让cookie跨域传递
- 让cookie跨域传递的方法:让服务端设置SameSite=none;默认是SameSite=Lax(Cookies允许与顶级导航一起发送,并将与第三方网站发起的GET请求一起发送)
- 响应首部 Set-Cookie 被用来由服务器端向客户端发送 cookie
- cookie只能在本网址中访问
- 三个CORS的头部字段举例(由服务端设置)
- Access-Control-Allow-Origin
- Access-Control-Allow-Headers
- Access-Control-Allow-Methods
- es7,es8,es9中新特性举例
- es7:Array.prototype.includes()
- **求幂运算符
- es8:async/await
- es9:promise.prototype.finally()
- es10:formEntries()
- vue compute 和 watch 区别
- vue-router hash history 的区别
- 不同点:
- 点击浏览器刷新按钮时,history模式下,如果没有在服务端配置路由,服务端会因为找不到页面报错。hash模式下可以正常刷新。
- history 使用浏览器 history api。使用history.pushState()添加浏览器历史记录中的条目。使用 window.onpopstate()监听浏览器前进后退事件。
- 不同点:
- 实现一个 promise.all()
- 事件代理
- 原理:冒泡机制。事件监听第三个参数:
- 优点
- 减少事件注册
- 增减子节点成本低
- event.target 引起事件触发的元素 event.currentTarget 事件绑定的元素
- webpack 如何分包
- webpack 中treeshaking
- 生产模式下自动开启treeshaking
- 浏览器中事件循环和node事件循环的区别
- 相同点:
- 在第一同步代码执行完毕后会清空一次微任务队列中任务
- 不同点
- 浏览器中只有同步任务,宏任务,微任务。宏任务执行一个结束后,清空微任务队列。
- node中有微任务,timer,poll, check队列,除了第一次同步任务执行后清空微任务,在这几个任务队列切换之前会清空微任务。
- 微任务中的process.nextTick 优先级高于 promise.then()
- 相同点:
- vue $nextTick() 原理
- 尝试调试
- 闭包是什么
- 在一个函数中返回另外另一函数,这个函数存有对外层函数变量的引用,这个引用在外层函数执行完毕之后不会被回收,所以变量没有被释放会占用内存空间,多了之后会导致内存泄露
- 如何解决:
- xss的分类和防护措施
- cookie, sessionStorage, localStorage区别
- 大小来说
- cookie不大于4kb,sessionStorage有
- localStorage 有 5M
- 进行session跟踪而存储在用户本地终端上的数据,由计算机暂时或永久保存在家算机上
- xmlhttp在发送请求的时候会带上cookie,自动带上的
- document.cookie可读可写,有httpOnly的不能被读取
- sessionStorage是会话级存储,页面关闭,数据丢失。localSorage是持久化本地存储,手动删除才会消失。
- 大小来说
- 状态码
- 301 永久重定向,可以改变请求方法 308也是永久重定向,但是不能改变请求方法
- 302 临时跳转,可以改变请求方法, 307 临时重定向,不能改变请求方法
- 304 not modified 文件没有被改变
- 305 是使用代理
- cdn原理
- 为什么有CDN
- 所有请求都打向服务器会出现服务器过载,网络拥塞等问题
- cdn专用dns解析服务器
- 网站授权dns服务器
- cname 是什么意思,重命名?
- 转发给离我最近的cdn缓存服务器拿数据,如果这台cdn服务器有缓存就直接给用户返回缓存,(哈,它怎么知道用户是谁?),没有缓存就先从服务器拿数据(哈,它怎么知道是哪个服务器?)存到缓存,再把数据给用户。
- 为什么有CDN
- dns原理