字节前端 一面凉经 被拷打一个半小时
- 介绍一下自己
- 讲项目的时候提到了文件分片上传,提问分片上传怎么做的(回答的不好,罗嗦了半天,最后应该说清楚了)
- 开始单点提问,react项目的路由高阶组件的目的(回答用token鉴权)
- 追问,token为什么要保存在localStorge,为什么不用cookie(没用过cookie,寄)
- 追问,cookie和localStorge的区别,各自有什么生命周期(答不知道,寄)
- 前端存储,indexDB了解吗(答不知道,寄)
- localStorge读取是同步还是异步(答同步)
- localStorge存储的内容,限制(内容答JSON,准确是JSON字符串,寄;限制一下没想起来,后面补充5M)
- 项目中服务器返回的MD或HTML格式的文章前端如何展示(直接说的用插件解析md,html经过插件处理再渲染)
- 追问,react如何把一段字符串变成DOM结构插入文档中(答双反引号模板字符串,寄,面试官说用dangerouslySetinnerHTML,然后我说更熟悉vue,求放过)
- 另一个项目(小程序),提问状态栏高度如何计算(答有接口,额外说了topBar怎么计算)
- 面试官说他不了解小程序,问webView里面的一些css属性可以设置安全区,问小程序有没有类似的(答不知道,寄)
- 追问,做小程序时怎么做的自适应(用的rpx,记错了,说的rem,后面都把rem当成rpx说了,连续寄)
- 追问,rem有什么用,怎么用的(反应过来不是rem,说做项目用的不是rem,是什么单位忘了,寄)
- 追问,讲一下常用的单位(说了px,vh,vw,rem,四个,面试官说还有em,没提到rpx,还是没想起来,寄)
- rem和em的区别(没用过,寄)
- 小程序海报生成怎么做的(答后端返回的图片,前端展示图片,用户可以选择是否下载,说了怎么做的自动下载)
- HTTP缓存有哪些(不知道,只答了能加速首次加载白屏,寄)
- CDN了解过吗(不知道,说听说过,可以用来加速,寄)
- 页面加载白屏的衡量指标,怎么让页面加载更快(指标不知道,寄;加载更快答了打包、图片之类的东西)
- onLoad,onDomReady了解过吗,具体执行时机(不知道,寄)
- var,let,const的区别(答作用域相关,var可以做变量提升)
- 追问let在函数中声明的变量外面可以访问吗(答不可以)
- 追问用let造成暂时性死区,讲一下(没听说过,寄)
- 提示上一个问题,用var可以先访问再定义,用let会怎么样(答报错,追问报什么错,不知道,寄)
- 追问,用typeof访问一个暂时性死区的变量会怎么样(答不知道,也许是报错,面试官说和刚才一样)
- 箭头函数和普通函数的区别,this指向分别是什么(没答好,寄)
- 说一下作用域和作用域链(应该没答错)
- 说一下函数执行完毕了之后它的作用域会怎样(答销毁)
- 追问,哪些情况不能销毁(答闭包)
- 追问,哪些情况会形成闭包(答函数返回函数,第一个函数的变量)
- 追问,为什么闭包不能销毁(答垃圾回收机制,标记清除和引用计数,说了一下标记清除的逻辑)
- 哪些场景会使用闭包,用过哪些闭包(答实现私有变量,节流,防抖)
- 说一下防抖和节流的实现思路(答了,不知道说没说的)
- 浏览器的其他api,面试官在聊天栏发了两个(不知道,寄)
- 连续发了两次请求,遇到过吗,会造成什么问题(答会导致保存了最后达到的数据,可能是先发的)
- 追问,如何解决(说了时间戳,面试官说用请求相关,我就说上个请求没回应就阻塞,面试官说只保留最后一个就行,寄)
- css定位分为哪些(答了四个,绝对、相对、固定、弹性)
- 详细说一下四个定位的区别和用途(没答好,小寄)
- 介绍一下盒模型(答的内容、内边距、边框、外边距,面试官让说详细一点,不知道,寄)
- border-box有哪些值(应该是面试官说错了,我说只知道box-sizing: border-box,寄)
- bfc块级格式化上下文了解吗(不知道,寄)
- css动画做过吗(答只做过简单的过渡效果,寄)
- 帧动画了解过吗(不知道,寄)
- v-show和v-if,说一下区别(答v-show是设置display,v-if是设置是否渲染)
- vue组件中的data为什么是函数(答作用域,避免两个组件冲突,好像错了,寄)
- vue的nextTick原理(答用Promise做异步,好像错了,寄)
- nextTick是宏任务还是微任务(答微任务)
- promise是宏任务还是微任务(答宏任务,应该错了,寄)
- 宏任务有哪些(答定时器和计时器)
- react对hooks的了解(答了useState,useEffect,useMemo)
- useState用来做什么(答定义响应式数据)
- 为什么hooks不能出现在if语句中(不知道,寄)
- 如何进行缓存(答了useMemo)
- 追问react.memo用来做什么,具体做了什么(没答好,寄)
- reactRouter基于什么原理、API实现的(不知道,寄)
- react中的fiber了解吗(不知道,寄)
- react中的ssr了解吗(不知道,寄)
- 图片懒加载怎么做(答错了,面试官让答加载时机,是视口中有才加载,寄)
然后让做两道编程题
第一道是给数字加逗号,例如1234567890转化成1,234,567,890(做出来了,问有没有其他思路,面试官说可以用浏览器API的toLocalString)
第二道是用Promise写任务队列(没写出来,寄了)
反问:字节用的什么技术栈(面试官说是react比较多)
人生中第一次面试,直接被狠狠拷打,输完了
#我的失利项目复盘##面试题刺客退退退##面试中的破防瞬间##如何判断面试是否凉了##哪些公司面试官让你印象深刻?#