当前位置: 首页 > 面试经验 >

哈啰单车前端一面

优质
小牛编辑
107浏览
2023-03-28

哈啰单车前端一面

面试官人挺好的,八股也都是结合具体场景问题来问的,最后反问也给了挺多建议

  • 自我介绍
  • cors解决跨域的原理
  • 为什么服务端做了配置,浏览器这边能够解决跨域
因为它是基于http请求头的
  • 黑客发起跨域请求到服务器,请求会被正常处理吗?因为刚才说到请求是会响应到浏览器,只是浏览器做了跨域拦截
一开始回答的是token,api可以做权限验证。后面提示有options预检请求,之前以为预检请求是为了防止资源消耗的,没想到与安全也有关系
  • https里的证书的作用
用来确信和我通信的服务器是真实可信的
  • 怎么确认证书的有效性
通过证书机构的公钥解密认证
  • charles怎么抓包https的包
手机端和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:1 的含义
子项目上三个flex属性的简写,分别是flex-grow:0, flex-shrik:1,flex-basis:auto
其中flex-grow在子项目不足主轴宽度时候决定放大子项目的量
flex-shrik会在子项目超过主轴宽度时绝定收缩的子项目量
flex-basis项目的默认大小
  • bilibili 斗鱼那种一行五个卡片,超过五个就自动换行怎么实现
  • 声明了一个数组,为什么就能调用pop、push这样的方法
通过构造函数生成的实例,能够调用起原型链上的方法
  • 数组的原型是什么
Array._proto === Function.prototype
  • es6 class里面的static的含义
静态属性,仅仅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是做什么的
  • 找工作的期望
  • 技术成长与业务成长的看法

发问
#哈啰出行##前端##校招#
 类似资料: