面试官人挺好的,八股也都是结合具体场景问题来问的,最后反问也给了挺多建议
- 自我介绍
- cors解决跨域的原理
- 为什么服务端做了配置,浏览器这边能够解决跨域
因为它是基于http请求头的
- 黑客发起跨域请求到服务器,请求会被正常处理吗?因为刚才说到请求是会响应到浏览器,只是浏览器做了跨域拦截
一开始回答的是token,api可以做权限验证。后面提示有options预检请求,之前以为预检请求是为了防止资源消耗的,没想到与安全也有关系
用来确信和我通信的服务器是真实可信的
通过证书机构的公钥解密认证
手机端和pc端都安装证书
- 具体怎么抓到https的明文包的,本来它是一串乱码的
没具体了解过,猜测可能有两种
一是拿到请求发送前的报文进行展示,但这样响应的报文就没法明文展示了,所以应该不是这样
二是拿到手机端进行加密的密钥,在charles上解密过后进行展示
- 浏览器记录cookie会记录cookie的哪些属性
sessionId、expires、max_age、secure(开启https)、domain(指定了后子域名也会收到cookie)、pah、same site(防止crsf)、http only(防止xss)
- 在百度的网站登陆了,新开了一个选项卡跳转百度网盘,为什么可以实现免密登录
回答的有点乱,下来后发现应该就是和cookie的domain字段有关,相关的子域名都会发送cookie
- 携带cookie的原理,什么情况下会带cookie,什么情况下不带
下来自己整理了一下,cookie首先是服务器发送给浏览器的,如果下次发起到同样服务器的请求,则会带上对应的cookie
子项目上三个flex属性的简写,分别是flex-grow:0, flex-shrik:1,flex-basis:auto
其中flex-grow在子项目不足主轴宽度时候决定放大子项目的量
flex-shrik会在子项目超过主轴宽度时绝定收缩的子项目量
flex-basis项目的默认大小
- bilibili 斗鱼那种一行五个卡片,超过五个就自动换行怎么实现
- 声明了一个数组,为什么就能调用pop、push这样的方法
通过构造函数生成的实例,能够调用起原型链上的方法
Array._proto === Function.prototype
静态属性,仅仅class可以使用,new出来的实例不能访问
- async里面await了一个接口,后面有个console.log(1), 为什么console.log会等待await后的执行完
和生成器自动执行有关系,不太了解了
- node.js有个commonjs的规范,es6为啥又出现了esm的规范
- 如何理解vue的渐进式开发
- vue样式的scope是干嘛的
做样式隔离的,会加上data-v-一串哈希
- react里面有个函数里面setState了10次,那么会render10次吗
不会的,setState后面的state更新是异步的,统一批量进行更新
- vue是通过数据劫持做的响应式,同样在函数里对数据更新了十次,那么在页面上会看到这个数据会跳动变化十次吗
- nextTick做了什么事情
当你在 Vue 中更改响应式状态时,最终的 DOM 更新并不是同步生效的,而是由 Vue 将它们缓存在一个队列中,直到下一个“tick”才一起执行。这样是为了确保每个组件无论发生多少状态改变,都仅执行一次更新。
- 本地开发的时候,编辑器修改了一行代码,为什么浏览器能够局部更新
和热更新hmr有关,会有推送机制吧
- 假如是做的推送,告诉浏览器代码变化了,那后面是怎么做的
会重新打包再执行渲染
- ts里面的record是做什么的
- 找工作的期望
- 技术成长与业务成长的看法
发问
#哈啰出行##前端##校招#