JS基础(基础永远是最重要的)

    js闭包
    JS中箭头函数和普通函数区别:
    JS作用域和作用域链:
    JS中如何判断this指向:
    Object.is()与比较操作符“===”、“==”的区别及隐式类型转换:
    JS中0.1 0.2 != 0.3:
    服务端渲染(SSR)的理解:
    async 和 defer的区别:
    JS区分对象和数组的方法:
    Promise理解和实现:
    js中判断类型的方式,以及typeof 的实现原理
    Array.prototype.reduce------累加器
    ES6常见的十大特性
    JS执行顺序自测
    深|浅拷贝
    事件循环机制
    settimeout和requestAnimationFrame
    Map和Set的区别,Map和object的区别
    对generator的了解
    Es6常用数组api积累
    instanceof的实现原理
    单例模式
    手写bind和call或者apply
    New操作符的作用及实现
    函数柯里化
    JS原型链和原型链

网络相关

    XSS和CFRS----浏览器安全
    跨域,引起跨域的原因,跨域常见的解决方案,手写一下JSONP的实现
    cookie的了解
    CDN为何可以为网页加速?
    http1.0、1.1、2.0、3.0相关
    websocket建立链接的过程
    强缓存和协商缓存整个流程
    https
    网络请求的参数及含义
    OSI的七层模型

CSS:

css部分考核确实比较少,主要是细节,这个平时注意积累一下即可,毕竟面试的时候答不出来挺尴尬的可能还会影响自己的心态。

    opacity、visibility、display将元素隐藏属性的对比
    实现左右固定中间自适应,至少说出三种方式
    画一个三角形,你能想出几种方式
    translate、transform、transition分别是什么
    flex的基本用法,它是哪些属性的简写,分别对应的默认值是什么?
    画一条0.5px的线

HTML

在框架满天飞的今天我们可能越来越忽略了HTML认为它不过就是一堆标签,但不要忘了作为前端归根结底就是学习HTML、CSS和JS这才是前端的三大基石!在本次面试中让我印象比较深刻的是面淘宝时面试官就HTML和我聊了将近半个多小时,很遗憾当时的面经后续整理的不太细致,因为当时比较明显的发现这是他的一个KPI任务,但仍然很感谢和面试官有这么一场交流。

    BFC
    事件捕获和事件冒泡机制
    标签相关问题总结
    移动端适配px、vw、rem的原理与实现

vue

建议关键的位置看一下源码实现,这一部分尽量看完之后有点自己的总结,然后再对比大佬们的总结可能更好理解。假如完全硬记的话可能面试官稍微一聊深点就没法继续了....

    nextTick原理
    vue2和vue3的差异性(一般问这个双向绑定肯定要清晰的说出区别和原理,但其他的也要知道,如生命周期、diff算法的提示、ts的支持等等)
    vue父子组件之间传值的方式(至少说5种以上)
    watch和computed的区别和使用场景
    keep-alive的原理,使用有什么问题?如何解决?
    vue模板(template)里为什么不能使用多个头结点?
    Vue优化的常用手段
    vue生命周期(2和3的区别,每个生命周期做了哪些事)
    vue2中具体是如何处理数组的,如何重写的push方法,让其就算push也可以触发回调
    Virtual DOM
    vuex原理
    路由简介
    vue router hash和history模式
    组合式API

webpack

    webpack构建|打包流程
    webpack相关问题
    webpack打包速度优化
    webpack优化运行时体验
    tree-Shaking webpack树摇原理
    css-loader的作用是什么?不使用css-loader行不行
    Webpack如何实现的proxy,为何可以解决跨域
    webpack如何实现热更新
    webpack基本配置&主要功能

我webpack部分的具体实践比较少,所以只整理了一些比较基础的问题,如果你跟我一样也只有几年工作经验有某个部分比较弱的话建议面试之前花点时间补一下,木桶原理不要让某个短板特别明显,大佬忽略~
TypeScript

    never和unknow的区别
    interface和class的区别
    interface和type的区别
    TS装饰器
    TS中的泛型
    函数重载
    TS自测练习题:

可能大家和我一样,平时直接上手用平时总结的很少,如果你的简历上也有提到不妨看看。
代码考核:

算法对于前端来说到底重不重要,这个仁者见仁智者见智,它确实稍微有点耗费时间而且使用频率没有特别大,但是如果你想进大厂尤其是大环境比较差,面试者都比较卷的当下。我建议还是适当的刷一下。主要攻破:二叉树、链表、递归、回溯、动态规划。以我本次找工作的经历来说:字节、小红书、快手、猿辅导的代码题都有考察算法。我自己差不多刷了LeetCode 100道左右,以middle为主(easy:20%、mid:70%、hard:10%)如果前期自己效率比较低确实刷不下去的话推荐《labuladong的算法小抄》跟着一起看。

    防抖&节流
    处理url,返回一个存储url参数的对象
    二叉树的深|广度优先遍历
    01背包和完全背包
    反转链表
    快速排序
    手写一个迷你观察者
    双向绑定的实现
    数组的全排列

        输入一个数组 arr = [1,2,3] 
        输出全排列 [[1], [2], [3], [1, 2], [1, 3], ...., [1,2,3], [1,2,4] ....]

    叠词的数量

        Input: 'abcdaaabbccccdddefgaaa' Output: 4 
         
         
        1. 输出叠词的数量 
        2. 输出去重叠词的数量 
        3. 用正则实现

    虚拟dom转真实dom
    数组转树结构
    并发限制,1000个请求,限制最大同时请求数量为N个
    最长无重复子串
    还有一些常见的刷几十道leetcode就可以解决的就不一一列举啦