JS
- 说一下toPrimitive和类型转换
- 说一下变量提升和函数提升的优先级
- 为什么0.1+0.2不等于0.3,如何解决?
- 什么是闭包,闭包有哪些应用场景
- 什么是柯里化,手写一下func(1)(2)(33)…的累加实现
- 对象深拷贝有哪些方法?手写一下对象深拷贝
- 说一下new和.的优先级
- 手写new的执行过程
- 什么是js函数式编程、纯函数、高阶函数
- 防抖和节流函数的区别,手写一个防抖
- bind、call、apply的区别,手写一个bind
- 什么是面向切面编程
- instanceof和typeof能准确判断引用类型么,如何准确判断引用类型?
- 什么是类数组,如何转换成数组
- 讲一下原型链,为什么Function.prototype === Function.__proto__
- 讲一下js继承的几种方式的优缺点,手写一个寄生组合继承
- 讲一下promise原理,实现一个简单的promise
- 讲一下js事件循环,宏任务、微任务的区别
- 手写发布订阅模式
- 箭头函数需要注意哪些问题
CSS
- 行内和块级元素的区别
- css盒模型有哪些和区别
- css选择器优先级
- CSS中哪些属性不可以从父元素继承
- 垂直居中有哪些方法
- 什么是BFC
- CSS 动画实现一个菊花图
- 如何设置小于12px的字体,画一条0.5px的线
- 移动端1px解决方案
- rem和em和vh的区别
- CSS 实现一个三角形、正方体
- 响应式和自适应的区别
- 如何适配多种设备的屏幕
HTML5
- 什么是HTML语义化、SEO
- 手写一个左边固定右边自适应的布局
- 手写一个圣杯布局、双飞翼布局
- script标签、style标签、link标签哪些会阻塞渲染
- 有做过canvas吗
浏览器
- GET和POST的区别,什么是restfulAPI
- 什么是事件代理、事件冒泡、事件捕获
- cookie和localstorage、seeionStorage的区别
- 讲一下从浏览器输入url到最终页面呈现的过程
- 如何解决列表渲染过多DOM元素的卡顿问题
- 如何解决浏览器缓存问题,强缓存、协商缓存的区别
- 有遇到哪些IE浏览器兼容性问题,如何解决的?
框架(vue)
- Vue的生命周期都干了些什么
- Vue组件通信的方式有哪些
- watch、methods 和 computed 的区别
- 什么是MVVM
- 说一下双向绑定原理,手写个简单的双向绑定
- 你觉得Vue源码中有哪些亮点
- v-for中为什么要使用key
- vue的高级用法有哪些及作用
- vue-Router原理是什么
- vue-Router钩子函数的作用
- Vue的nextTick原理是什么
- 什么是虚拟DOM
- 简单说一下Vue和React的认识,之间的区别
- Vue3更新了哪些东西
- 有了解Vite吗
前端工程化
- 单页和多页应用的区别
- 什么是工程化、模块化、组件化
- 写过通用性组件吗
- 你知道哪些前端性能优化方法
- 简单说一下webpack原理
- 什么是webpack树抖动、scope hoisting
- 什么是sourcemap
- 如何实现多页面打包,移动端适配打包
- 有写过loader或plugin吗
- 什么是SSR、如何实现SSR
- 有做过跨端开发吗
网络
- 什么是TCP/IP
- 什么是跨域,如何解决
- 为什么要三次握手四次挥手
- 你知道哪些http响应状态码,分别表示什么
- https为什么安全
- 什么是xss,csrf
其他
- 平时是怎么学习前端的
- 最近在关注哪些新技术
- 有造过哪些轮子
- 为什么选择前端
- 有做过后端开发吗