今天面试了个211前端男生,直接淘汰了

其实,前端面试最先淘汰的就是说这几句话的

今天面了好几个前端岗的,技术实力不错,就是面试的时候一回答具体问题就特别笼统,缺乏细节,给大家整理了一下:

1.别说:“Vue 用 defineProperty 实现响应式”

✅ 改说:

“项目中升级 
Vue 3 后,响应式改用 `Proxy`,解决了动态增删属性不更新的问题。比如权限配置字段,Vue 2 需 `$set`,Vue 3 天然支持。对大对象我们用 `
shallowRef` 减少监听开销。”

2.别说:“懒加载、gzip 提升性能”

✅ 改说:

“优化首屏时,通过 DevTools
 发现 JS 过大,做了三件事:路由懒加载、第三方库外链 CDN、关键资源 `<link rel=preload>`。最终 LCP
 从 3.2s 降至 1.4s,PV 提升 27%

3.别说:“开发用代理解决跨域”

✅ 改说:

“微服务下多域名调用,开发用 
Vite 的 `server.proxy` 转发;生产由网关统一配 
CORS 白名单。传递 Cookie 时前后端都要设 `withCredentials` 和 `credentials: 'include'`,漏配会导致登录态丢失——我们曾因此出过问题,后来加了 CI 检查。”

4.别说:“组件化+按功能分目录”

✅ 改说:

“我们规范为:`/pages` 按路由组织,组件分 `common`(通用)和 `features`(业务专用),共享逻辑抽成 `hooks`。并通过 ESLint
 禁止跨模块引用,新人上手时间缩短一半。

5.别说:“写测试、用 ESLint”

✅ 改说:

“推行提交即检测:Husky 触发 
Prettier 格式化,PR 必须通过 ESLint + Stylelint,CI 拒绝不合规代码。核心模块测试覆盖率 ≥80%,Jest
 测试异步流程。上线后主流程 bug 数下降 60%。

三大原则

1. 具体化:不说“优化性能”,说“LCP 从 3.2s 降到 1.4s”
2. 讲权衡:说明为什么选 A 不选 B(如选 Vue 因团队熟悉)
3. 带结果:用数据证明效果(PV↑、Bug↓、加载快)


整理了一些面试高频题,趁现在还有时间,抓紧背吧!

JavaScript、CSS、ES6、Vue2、vue3、React
、Node.JS、小程序、HTTP、Typescript、Webpack

Git、Linux、算法与数据结构、设计模式、项目实战、简历模板等等。

先贴一下github: https://github.com/encode-studio-fe/natural_traffic/blob/master/material/scan_material1.md

JavaScript 部分

  • 说说JavaScript中的数据类型?存储上的差别?
  • 说说你了解的js数据结构?
  • DOM常见的操作有哪些?
  • 说说你对BOM的理解,常见的BOM对象你了解哪些?
  • ==和===区别,分别在什么情况使用
  • typeof 与instanceof区别
  • JavaScript原型,原型链?有什么特点?
  • 说说你对作用域链的理解
  • 谈谈this对象的理解
  • 说说new操作符具体干了什么?
  • bind、call、 apply区别?如何实现一个bind?
  • JavaScript中执行上下文和执行栈是什么?
  • 说说JavaScript中的事件模型
  • 解释下什么是事件代理?应用场景?
  • 说说你对闭包的理解?闭包使用场景
  • 谈谈JavaScript中的类型转换机制
  • 深拷贝浅拷贝的区别?如何实现一个深拷贝?
  • Javascript中如何实现函数缓存?函数缓存有哪些应用场景?
  • JavaScript字符串的常用方法有哪些?
  • 数组的常用方法有哪些?
  • 说说你对事件循环的理解

CSS

  • 说说你对盒子模型的理解?
  • 谈谈你对BFC的理解?
  • 什么是响应式设计?响应式设计的基本原理是什么?如何做?
  • 元素水平垂直居中的方法有哪些?如果元素不定宽高呢?
  • 如何实现两栏布局,右侧自适应?三栏布局中间自适应呢?
  • css选择器有哪些?优先级?哪些屈性可以继承?
  • css中,有哪些方式可以隐藏页面元素?区别?
  • 如何实现单行/多行文本溢出的省略样式?
  • CSS如何画一个三角形?原理是什么?
  • 如何使用css完成视差滚动效果?
  • css3新增了哪些新特性?
  • css3动画有哪些?
  • 介绍一下grid网格布局
  • 说说flexbox (弹性盒布局模型),以及适用场景?
  • 说说设备像素、css像素、设备独立像素、dpr.ppi之间的区别?
  • 说说em/px/rem/vh/vw区别?
  • 让Chrome支持小于12px的文字方式有哪些?区别?
  • 怎么理解回流跟重绘?什么场景下会触发?
  • 说说对Css预编语言的理解?有哪些区别?
  • 如果要做优化,cSS提高性能的方法有哪些?

ES6

  • 说说var. let、 const之间的区别
  • ES6中数组新增了哪些扩展?
  • 函数新增了哪些扩展?
  • 对象新增了哪些扩展?
  • 你是怎么理解ES6中Promise的?使用场景?
  • 你是怎么理解ES6中Module的?使用场景?
  • 你是怎么理解ES6中Generator的?使用场景?
  • 你是怎么理解ES6中Decorator的?使用场景?
  • 你是怎么理解ES6新增Set. Map两种数据结构的?
  • 你是怎么理解ES6中Proxy的?使用场景?

Vue2

  • 请描述下对vue生命周期的理解
  • 双向数据绑定是什么
  • Vue组件之间的通信方式都有哪些?
  • 为什么data属性是一个函数而不是一个对象?
  • 动态给vue的data添加一个新的属性时会发生什么?怎样解决?
  • v—if和v—for的优先级是什么?
  • v-show和v—if有什么区别?使用场景分别是什么?
  • 你知道vue中key的原理吗?说说你对它的理解
  • 说说你对vue的mixin的理解,有什么应用场景?
  • Vue常用的修饰符有哪些有什么应用场景
  • Vue中的$next Tick有什么作用?
  • Vue实例挂载的过程
  • 你了解vue的diff算法吗?
  • Vue中组件和插件有什么区别?
  • Vue项目中你是如何解决跨域的呢?
  • 有写过自定义指令吗?自定义指令的应用场景有哪些?
  • Vue中的过滤器了解吗?过滤器的应用场景有哪些?
  • 说说你对slot的理解?slot使用场景有哪些?
  • 什么是虚拟DOM?如何实现一个虚拟DOM?说说你的思路
  • Vue项目中有封装过axios吗?主要是封装哪方面的?
  • 是怎么处理vue项目中的错误的?

Vue3

  • Vue3.0所采用的
    Composition Api 与Vue2.x使用的Options Api有什么不同?
  • vue3.0的设计目标是什么?做了哪些优化
  • 用Vue3.0写过组件吗?如果想实现一个Modal你会怎么设计?
  • vue3.0性能提升主要是通过哪几方面体现的?
  • Vue3.0里为什么要用Proxy API替代defineProperty APl?
  • 说说Vue 3.0中Treeshaking特性?举例说明一下?

React

  • 说说对React的理解?有哪些特性?
  • state和props有什么区别?
  • super()和super(props)有什么区别?
  • 说说对React中类组件和函数组件的理解?有什么区别?
  • 说说对受控组件和非受控组件的理解?应用场景?
  • 说说React的事件机制?
  • React事件绑定的方式有哪些?区别?
  • React构建组件的方式有哪些?区别?
  • 说说react中引入css的方式有哪几种?区别?
  • 说说React生命周期有哪些不同阶段?每个阶段对应的方法是?
  • React中组件之间如何通信?
  • 说说对高阶组件的理解?应用场景?
  • 在react中组件间过渡动画如何实现?
  • 说说你在React项目是如何捕获错误的?
  • 说说对React refs的理解?应用场景?
  • 说说React中的setState执行机制
  • 说说React render方法的原理?在什么时候会被触发?
  • 说说Real DOM和Virtual DOM的区别?优缺点?
  • 说说React Jsx转换成真实DOM过程?
  • 说说对Fiber架构的理解?解决了什么问题?

Node.JS

  • 说说你对
    Node.js的理解?优缺点?应用场景?
  • 说说对Node中的fs模块的理解?有哪些常用方法
  • 说说对Node 中的Buffer的理解?应用场景?
  • 说说对Node 中的Stream的理解?应用场景?
  • 说说对Node中的process的理解?有哪些常用方法?
  • 说说Node中的EventEmitter?如何实现一个EventEmitter?
  • 说说Node文件查找的优先级以及Require方法的文件查找策略?
  • 说说Node有哪些全局对象?
  • 说说对中间件概念的理解,如何封装node 中间件?
  • 说说对Nodejs中的事件循环机制理解?
  • Node性能如何进行监控以及优化?
  • 如何实现文件上传?说说你的思路
  • 如何实现jwt鉴权机制?说说你的思路
  • 如果让你来设计一个分页功能,你会怎么设计?前后端如何交互?

小程序

  • 说说你对微信小程序的理解?优缺点?
  • 说说微信小程序的生命周期函数有哪些?
  • 说说微信小程序的登录流程?
  • 说说微信小程序中路由跳转的方式有哪些?区别?
  • 说说微信小程序的发布流程?
  • 说说微信小程序的支付流程?
  • 说说微信小程序的实现原理?
  • 说说提高微信小程序的应用速度的手段有哪些?

HTTP

  • 如何理解OSI七层模型?
  • 如何理解TCP/IP协议?
  • 如何理解UDP和TCP?区别?应用场景?
  • 说一下GET和POST的区别?
  • 说说TCP为什么需要三次握手和四次挥手?
  • 说说HTTP常见的请求头有哪些?作用?
  • 说说HTTP常见的状态码有哪些,适用场景?
  • 什么是HTTP? HTTP和HTTPS的区别?
  • 说说HTTP1.0/1.1/2.0的区别?
  • 为什么说HTTPS比HTTP安全?HTTPS是如何保证安全的?
  • 如何理解CDN?说说实现原理?
  • DNS协议是什么?说说DNS完整的查询过程?
  • 说说对WebSocket的理解?应用场景?
  • 说说地址栏输入URL敲下回车后发生了什么?

TypeScript

  • 说说你对TypeScript的理解?与JavaScript的区别?
  • 说说typescript的数据类型有哪些?
  • 说说你对TypeScript中高级类型的理解?有哪些?
  • 说说你对TypeScript中接口的理解?应用场景?
  • 说说你对TypeScript中类的理解?应用场景?
  • 说说你对TypeScript中枚举类型的理解?应用场景?
  • 说说你对TypeScript中函数的理解?与JavaScript函数的区别?
  • 说说你对TypeScript中泛型的理解?应用场景?
  • 说说你对TypeScript装饰器的理解?应用场景?
  • 说说对TypeScript中命名空间与模块的理解?区别?
  • 说说如何在React项目中应用TypeScript?
  • 说说如何在Vue项目中应用TypeScript?

Webpack

  • 说说你对webpack的理解?解决了什么问题?
  • 说说webpack的热更新是如何做到的?原理是什么?
  • 说说webpack的构建流程?
  • 说说webpack proxy工作原理?为什么能解决跨域?
  • 说说webpack中常见的Loader?解决了什么问题?
  • 说说webpack中常见的Plugin?解决了什么问题?
  • 说说Loader和Plugin的区别?编写Loader,Plugin的思路?
  • 如何提高webpack的构建速度?
  • 说说如何借助webpack来优化前端性能?
  • 与webpack类似的工具还有哪些?区别?

Git

  • 说说你对版本管理的理解?常用的版本管理工具有哪些?
  • 说你对Git的理解?
  • 说说Git常用的命令有哪些?
  • 说说Git中HEAD、工作树和索引之间的区别?
  • 说说git发生冲突的场景?如何解决?
  • 说说Git中fork,clone,branch这三个概念,有什么区别?
  • 说说对git pull和git fetch的理解?有什么区别?
  • 说说你对git rebase和git merge的理解?区别?
  • 说说你对git reset和git revert的理解?区别?
  • 说说你对git stash的理解?应用场景?

算法与数据结构

  • 说说你对数据结构的理解?有哪些?区别?
  • 说说你对算法的理解?应用场景?
  • 说说你对算法中时间复杂度,空间复杂度的理解?如何计算?
  • 说说你对集合的理解?常见的操作有哪些?
  • 说说你对树的理解?相关的操作有哪些?
  • 说说你对栈、队列的理解?应用场景?
  • 说说你对链表的理解?常见的操作有哪些?
  • 说说你对堆的理解?如何实现?应用场景?
  • 说说你对图的理解?相关操作有哪些?
  • 说说常见的排序算法有哪些?区别?
  • 说说你对冒泡排序的理解?如何实现?应用场景?
  • 说说你对二分查找的理解?如何实现?应用场景?
  • 说说你对快速排序的理解?如何实现?应用场景?
  • 说说你对选择排序的理解?如何实现?应用场景?
  • 说说你对插入排序的理解?如何实现?应用场景?
  • 说说你对分而治之、动态规划的理解?区别?
  • 说说你对归并排序的理解?如何实现?应用场景?
  • 说说你对贪心算法、回溯算法的理解?应用场景?

由于平台的篇幅限制,更多更详细的内容无法一一展示,只能把部分的内容粗略地介绍一下(毕竟将近一千四百页的文档)。需要的小伙伴: https://github.com/encode-studio-fe/natural_traffic/blob/master/material/scan_material1.md

Read more

前端老铁必看:Mock劫持Ajax翻车实录与避坑指南

前端老铁必看:Mock劫持Ajax翻车实录与避坑指南

前端老铁必看:Mock劫持Ajax翻车实录与避坑指南 * 前端老铁必看:Mock劫持Ajax翻车实录与避坑指南 * 咱就是说,这玩意儿到底咋忽悠浏览器的 * 核心原理:浏览器里的"替身演员" * 那fetch呢?它也跑不掉 * url、rtype、template这三个参数到底咋配合的 * 匹配优先级:谁说了算 * 扒开源码看底裤,拦截逻辑其实是这么玩的 * 源码级别的URL匹配骚操作 * 请求类型(rtype)的判断陷阱 * 数据生成引擎:template是怎么变成真实JSON的 * 延迟模拟:为什么要假装网络很慢 * 爽完之后的贤者时间:这招到底有啥毛病 * 性能陷阱:假数据太多,浏览器直接去世 * 类型安全地狱:TS项目里的Mock灾难 * 复杂业务逻辑模拟不了:鉴权、文件上传、流式数据 * 跨域和CORS的坑 * 真实搬砖场景:我在项目里是怎么靠它摸鱼的 * 场景一:后端接口延迟,先画UI * 场景二:模拟

hacdias/webdav WebDAV服务器完整配置指南与快速入门

hacdias/webdav WebDAV服务器完整配置指南与快速入门 【免费下载链接】webdavSimple Go WebDAV server. 项目地址: https://gitcode.com/gh_mirrors/we/webdav hacdias/webdav是一个轻量级独立的WebDAV服务器解决方案,采用Go语言编写,专为需要简单高效文件共享服务的用户设计。本文将为您提供从零开始的一键部署教程、安全配置实践以及常见问题解决方案,帮助您快速搭建专业的WebDAV文件共享平台。 项目核心特性解析 hacdias/webdav服务器具备多项实用功能:支持多用户权限管理,可为不同用户分配独立的目录访问权限;内置TLS加密传输,保障数据传输安全性;提供灵活的规则配置系统,支持基于路径和正则表达式的精细权限控制;兼容所有标准WebDAV客户端,实现跨平台文件同步。 Docker容器化部署实战 基础环境准备 首先确保系统已安装Docker环境,然后创建配置文件和数据目录: mkdir -p webdav/{config,data} 配置文件编写 创建webd

【Java Web学习 | 第五篇】CSS(4) -盒子模型

【Java Web学习 | 第五篇】CSS(4) -盒子模型

🌈个人主页: Hygge_Code🔥热门专栏:从0开始学习Java | Linux学习| 计算机网络💫个人格言: “既然选择了远方,便不顾风雨兼程” 文章目录 * CSS盒子模型🥝 * 1. 什么是CSS盒子模型? * 2. 边框(border):盒子的"外衣"🍋‍🟩 * 边框的基本属性 * 单边边框设置 * 边框对盒子大小的影响 * 表格细线边框 * 3. 内边距(padding):内容与边框的缓冲带🍋‍🟩 * 内边距的基本用法 * 内边距对盒子大小的影响 * 内边距的实用技巧 * 内边距不影响盒子大小的特殊情况 * 4. 外边距(margin):盒子之间的距离🍋‍🟩 * 外边距的基本用法 * 外边距的典型应用:水平居中 * 外边距合并问题 * 清除默认内外边距🐦‍🔥 * 综合代码演示 * CSS美化三剑客:圆角边框、盒子阴影与文字阴影🥝 * 1. 圆角边框(border-radius):告别生

AI辅助开发实战:cosyvoice webui 使用教程与性能优化指南

最近在做一个语音交互项目,遇到了不少头疼的问题:实时语音转文本的延迟太高,用户说完了要等好几秒才有反馈;集成的开源库五花八门,从音频采集到特征提取再到模型推理,链条太长,调试起来非常麻烦;更别提内存消耗了,长时间运行后进程占用内存越来越高,疑似内存泄漏。就在我焦头烂额的时候,接触到了 cosyvoice 这个工具,尤其是它的 WebUI 和配套的 Python SDK,尝试之后感觉像是打开了一扇新门。今天就来分享一下我的使用心得和踩坑记录,希望能帮到有类似需求的同学。 1. 背景痛点:为什么传统的语音处理方案让人头疼? 在接触 cosyvoice 之前,我的技术栈大概是这样的:用 PyAudio 或 sounddevice 采集音频流,用 Librosa 或 torchaudio 进行预处理(比如分帧、加窗、计算梅尔频谱),然后把特征喂给一个独立的语音识别模型(可能是 whisper 或自研模型),最后处理结果。这套流程听起来清晰,但实际落地时问题一大堆: