-
HTML
- 如何避免重绘、重排?为何可以避免?
- JS如何把渲染树实现到屏幕上?
- web安全问题有哪些?如何防范?
- 一个完整URL包含哪些部分?
- 为何浏览器不渲染scss less,只渲染css?
- SSR渲染?
- DOM树和CSSOM树如何实现相同节点匹配?
- async和defer的区别?
- meta有哪些属性
- 常见的状态码?
- websocket?
- 说一下强缓存和协商缓存?有哪些标志?
- 浏览器哪些强制缓存、哪些协商缓存、哪些不能缓存?
- 请求头里有什么?
- put请求和post请求有哪些?
-
CSS
- scss、less的对比,他们和css相比的优势?
- 有哪些盒模型?
- 你的项目中用到了哪些布局方式?
- flex属性有哪些?
- 选择器+ 和 ~de 区别?
- 点击弹窗,下层的遮罩层如何全部遮住页面
- 有哪些居中方法?你的项目中用到了哪些?
- 固定页面除了fixed还有什么?(项目)
- position的属性有哪些?各自相对于什么定位?
- 如何开发多端适配的页面?
- 如何已经开发了一个确定的模型,如何适配另一个设备?
- 百分比宽度计算锚定的什么元素?父元素无宽度又是什么?
- 百分比和rem单位如何转换?每一处都要转化如何优化?
- 多个css样式?如何实现确定的渲染?(css选择器优先级)
- css有哪些动画实现方式?
- 了解高度塌陷吗?如何避免?追问:为何可以避免?
- BFC 如何触发
- 用动画实现1s内的div块旋转360°,扩大两倍?
-
JS
- 如何判断对象是数组
- typeof instance区别?
- js精度问题?0.1+0.2!==0.3?如何解决?
- js何时用双等号和三等号
- 原型上的instance如何判断?
- 如何实现一个比较完备的类型判断?
- 数组有哪些操作?ES6中新增了哪些?
- 字符串有哪些操作?
- 多条数据如何同时请求?/如何每隔一定时间请求50条数据?
- 如何向后端发送请求?
- Restful API
- 有哪些请求?
- 说一下有哪些异步请求?
- Promise为何能链式调用?
- 如何自己实现一个promise?
- Promise.all和Promise.race和Promise.any和Promise.allSeclect区别?
- ES6新增语法?
- 如何避免var的变量提升?
- 如何实现Promise.all?
- JS的数据类型有哪些?
- weakMap和map区别?
- 说一下proxy?
- 实现数组展平、去重
- 什么是防抖和节流,防抖节流如何实现?如何实现第一次立即执行的节流函数?
- 实现深拷贝?有哪些边界条件?
- 哪些函数是深拷贝?
- 哈希数据结构?
- 栈和队列的区别?
- 数组和链表的区别?
- map和数组,set和对象的区别?
- 什么是事件循环?
- 宏任务微任务有哪些?
- 闭包
- 如何实现跨域?
- 对象和数组存储方式?
- 用const声明的对象,数组为何可以增删?
- 继承的方式有哪些?
- 内存泄漏和内存溢出有什么区别?
- 讲一下垃圾回收,V8引擎的新方法?
- 栈垃圾和堆垃圾区别?
- 箭头函数和普通函数区别?
- 讲一下this的指向问题?
- 前端异步操作有哪些方案?
- 你用过哪些dom操作?
- 在ES5中如何实现的异步请求?es6中的新方式转成了es5中的什么?
- 看代码说输出1.宏任务微任务
- 看代码说输出2.循环+作用域(函数、var/let)
- 看代码说输出3.作用域+this,对象或函数返回里有函数
- 手撕总结:深浅拷贝、sleep函数、类型判断、订阅发布模式、防抖节流
- js相关算法:柯里化、展平去重、全排列(去重)、版本比较、正则匹配、输出时间区间中的有效日期、将html字符串变成dom对象树、js 对一个十进制的10位数,保证数字顺序并取出3位,使得余下的数字最小
-
React
- react15-18的区别,新增了什么?
- react18的协调器如何设置优先级的?
- react的事件?(合成事件)
- 合成时间、原生事件、dom操作等冒泡机制下的顺序?
- fiber机制
- 你用过哪些hooks?
- 可以在循环或者条件判断语句中使用setState()吗?
- 了解useLayoutEffect吗?
- react router实现原理?(项目)
- 说一下动态路由跳转?在路由跳转中组件生命周期发生了啥?
- 类组件和函数组件区别?生命周期区别?
- useState useEffect useMemo区别
- useState和useEffect底层原理?
- 可以直接修改state吗?会修改成功吗?
- React的性能优化有哪些?
- css in js的优劣势?
- 项目中自定义过什么hooks?
- 受控组件和非受控组件?用户使用时候的区别?
- React的错误捕捉?
- 父元素和子元素都绑定一个冒泡和一个捕获事件,点击子元素,事件触达顺序?
- 讲一下React.memo,追问:用它包裹子组件,父子传递props,如果父组件卸载了,子组件会怎么样?
- 讲一下懒加载?
- 讲一下你了解哪些状态管理库?
- 讲一下react redux?
- 如何缓存数组和函数?
- 如何实现双向绑定?比如监听数组变化?
- 说一下diff算法?index做key的后果?
- 用过哪些高阶组件?
-
计网
- http和https?
- TCP UDP区别?
- http1 http2区别
- 拥塞控制讲一下?
- 讲一下TCP?
- tcp为何要三次握手和四次挥手,不能二次?
- 进程、线程?
- 七层模型和五层模型?
- 各层协议?
-
TS
- interface 和 type 区别?应用场景?
- TS用法和JS的区别?
- 如何实现ts的函数
- any 和 T的区别
- 枚举类型?
-
综合问题
- 从输入网址到页面展示的过程?
- 前端相关设计模式?你用过哪些?
- 如何自己实现一个轮播图?
- 如何做登陆验证?(三件套)(项目)怎么判断登录成功等操作的,相关数据存在哪里?
- 多层页面,且有很多按钮,如何埋点记录信息且发送到后端?
- 如何实现秒杀?
- 出现白屏怎么办?
- 对于项目中的图片格式,如何去进行格式抉择的?(多图站点性能优化)
- 实现一个秒杀?并且考虑如何知道出现在视口中才能出现相关功能?
-
工程化问题
- webpack构建流程?
- loder和plugin的区别?
- 说一下常用的plugin?
- 解析less的步骤?
- 如果想把所有css单独抽取到一个文件,怎么实现?
- git merge和git rebase区别?
- git pull 和 git fetch区别?
- git的回滚操作?
- 常用哪些git操作
- git删除或者合并后还能找到之前的版本吗