拓冰建站拓冰建站
首页 / 资讯中心 / 正文

前端常用英文词汇全解析:从报错到面试,掌握编程第二语言

打开 GitHub 上一个 5k star 的前端仓库README 第一段就冒出lexical scope、side effect、immutable面试时面试官随口问“你讲一下debounce和throttle的区别”你心里想的是“防抖节流”嘴上却慢了一拍调接口报错has been blocked by CORS policy你隐约知道是跨域但想跟后端说清楚“加个 header”都要先查一下单词。这种时刻多了之后我才意识到所谓“前端常用单词”并不是英语课而是前端开发者的第二语言——它直接决定你读文档、看报错、写注释、过面试的速度。这篇文章不搞几千词的词表而是按真实开发流程和场景把前端工作里真正高频的词拆一遍。每个词我都会放在一个实际会碰到的语境里解释顺便带上我自己踩过的坑和积累方法。适合英文一般的入门开发者也适合工作两三年但一直靠翻译插件硬扛、想彻底摆脱“每个词都要查”状态的同学。1. 前端常用词不是背单词是解构报错和文档的最小单位1.1 读不懂报错常常不是不会写代码而是解不出关键单词我见过太多人卡在很基础的问题上其实逻辑早就想明白了就差一个词。比如浏览器控制台里最常见的这条TypeError: Cannot read properties of undefined (reading length)译文是“无法读取 undefined 的属性正在读取 length”。如果你知道Cannot read properties of undefined就是在说“有一个东西是 undefined你还在它身上点了个属性”那么排查方向立刻就有了——某个数组或字符串没拿到值。可新手常常盯着整行红字发呆甚至截图去问别人而不是自己翻译。再比如网络请求报错413 Payload Too Largepayload指的是请求体接口传输的实际数据部分。如果我把它翻译成“负载”很多人还是会懵但只要理解“payload 就是 POST 出去的那段数据”就能立刻想到是上传内容超了该调服务器限制或者压缩文件了。这个能力说白了就是“词汇转译”。前端代码的语法是英文、框架 API 是英文、报错是英文、文档是英文你可以在 IDE 里装翻译插件但翻译插件永远救不了面试和开会。1.2 很多前端“黑话”本身就是英文直译源头理解了就不觉得玄前端圈里有一种很奇妙的氛围大家喜欢把一些普通词包装成高深概念。比如middleware你听人讲“中间件”觉得挺抽象可它翻译过来就是“中间的软件层”。在 Koa 或 Express 里middleware就是请求从进来到返回之间逐个执行的那些函数。词根是middle中间加ware件本质上和“软件”是同一个构造逻辑。类似的还有polyfillpoly有“多”的意思fill是填充合起来就是“用多个补丁把缺失的功能填上”。Array.prototype.includes在老浏览器里没有你就写个 polyfill 替它补上。shim垫片。某个库不兼容当前环境用一个薄层把它垫到能跑。和polyfill常被混用但语义上一个偏向“补 API”一个偏向“做适配层”。cache缓存。这个太常用了localStorage、sessionStorage、memory cache、disk cache全和它相关。snapshot快照。测试里的“快照测试”就是把组件渲染结果存一份对比后续变化。session会话。sessionStorage就是“会话级存储”关掉标签页就没了。这些词一旦理解了来源记忆力会明显提升因为它不再是随机符号而是有意义的组合。2. 从输入 URL 到页面渲染一条完整链路里的高频词我学前端那会儿最爱干的一件事就是在浏览器的 Network 面板里盯着一条请求从发出到返回的完整过程把所有字段挨个搜一遍。这个过程比背任何词表都有效因为每个词背后都对应一个你实际看得见的数据。2.1 地址栏和请求阶段protocol、host、path、query、params当你在地址栏敲入一个网址浏览器第一件事是解析 URL。很多人每天写接口却从不拆解 URL其实这里面每一个字段都是一个常用词。一个典型的接口地址长这样https://api.example.com:443/api/user/list?page1size20protocol协议https://这一段。host主机名也就是域名指向的服务器位置api.example.com。port端口:443https 默认走 443http 默认走 80也可以显式写其他端口。path路径/api/user/list表示服务器上哪个资源。query查询参数?后面的page1size20通常用于 GET 请求的过滤、分页等。params在 axios 这类库里params特指会被拼到 URL 上的参数而data或body是指请求体。这个拆分看起来简单但坑就在这儿我见过不少人在 GET 请求里用data传参数后端收不到查半天。因为 GET 的请求没有 body 概念参数要么在params要么拼在 URL 上。反过来POST 请求里你把参数放params同样会让后端懵。搞清楚query和body的区别很多传参问题就直接消失。2.2 响应阶段response、status、header、body、cache、resource点开任意一条请求响应信息里全是高频词response响应也就是服务器返回给你的整体数据对象。status状态码。200 OK、301 Moved Permanently、304 Not Modified、400 Bad Request、401 Unauthorized、403 Forbidden、404 Not Found、500 Internal Server Error。304值得单独说一句它的意思是“资源没有修改直接用缓存吧”前端很多缓存优化就是要让它生效。header/headers请求头/响应头。这里存的是元信息比如Content-Type返回的是什么类型、Authorization身份凭证。有一次我调后端接口一直 401查了半天发现是 headers 里忘了放token这个词不熟排查时你连该搜什么都不知道。body响应体真正回来的数据。注意和payload的细微差别payload更侧重“传输的有效载荷”body更侧重“内容的实体部分”实际沟通时经常互换。resource资源。前端性能优化里的Resource Timing API、preload、prefetch都是围绕资源加载做文章。2.3 渲染与交互阶段render、layout、paint、event、throttle、debounce拿到数据后就要上屏这阶段的高频词几乎全来自浏览器渲染原理render渲染把数据变成可见 UI 的过程。React 里有render方法Vue 里有render function面试必问。layout布局计算每个元素的位置和尺寸。Reflow回流指的就是重新执行 layout。paint绘制把布局结果画到屏幕上。Repaint重绘是只改颜色等视觉属性时的操作。composite合成把多层位图合到一起。性能优化里常说“避免强制同步布局”这个词组是forced synchronous layout。event事件。click、keydown、scroll都是事件。throttle节流限制“一段时间内最多执行一次”。debounce防抖限制“只有停止触发后再等一段时间才执行”。这两个词面试频率高得吓人。我面试过一个人让他实现“搜索框输入完成后自动查询”他写了个setTimeout就交了根本没有区分输入过程中的每次触发和结束后的触发。其实debounce背后那个“客厅等电梯”的类比特别好记电梯关门后如果又有人来门会重新打开并再等一段时间搜索框防抖就是“停止输入后 300ms 才发送请求”。3. 代码里全是命名暗语看懂单词等于看懂了函数意图前端项目的代码可读性很大程度取决于你能不能“望文生义”。我接手老项目时最怕的不是逻辑复杂而是命名乱来——data1、flag2、xixi这种代码没人敢动。反过来如果命名规范你根本不需要看实现就能理解七八成。3.1 函数命名的动词前缀is、has、can、should、on、handle、get、set、to前端函数的命名习惯非常固定动词前缀就是最大的线索get获取。getUserList就是拿用户列表通常有返回值。set设置。setLoading(true)就是改状态。is判断“是不是”。isActive、isVisible、isLoading一般返回布尔值。has判断“有没有”。hasPermission检查权限。can判断“能不能”。canSubmit表单能不能提交。should判断“应不应该”。shouldUpdate常用于组件更新逻辑。on事件处理。onClick、onChange、onSubmit代表“在某某事件发生时”。handle处理。handleClick和onClick的差异很微妙onClick更多是绑定在 DOM 上handleClick是内部定义的处理函数。to转换。toString转字符串、toJSON转 JSON、toFixed保留小数。这个列表看起来简单但实际收益非常大。比如event.target和event.currentTarget面试八股文常考target是真正触发事件的元素currentTarget是绑定监听器的元素。理解target是“目标”、current是“当前的”再加上一个冒泡场景就能记住。3.2 组件和属性的高频语义placeholder、disabled、readonly、loading、visible、selected写 UI 组件的时候有一批属性名是行业共识基本所有组件库都遵循placeholder占位提示文本在 input 里显示浅色的提示文字。disabled禁用让组件不可操作。注意前端禁用只是交互限制数据安全不能靠它。readonly只读值在但不可编辑。和disabled的区别是 readonly 字段仍可聚焦、仍会随表单提交。loading加载中状态常见于按钮、表格、页面切换。visible/show/open显示相关。Element Plus 的 Dialog 用v-model控制但很多配置项里会写visible。selected选中状态。multiple多选模式。clearable可清除。词根clear清空加-able能被…的这类词很有规律clickable、scrollable、collapsible、editable、selectable。这里有一个实战场景Element Plus 的el-select要想支持搜索配置项叫filterable直译是“可过滤的”。第一次用的时候我记了很久后来发现前端属性里大量-able结尾的词都是“可…”的意思editable可编辑、searchable可搜索。记住这个后缀一猜一个准。3.3 框架生态里的高频词props、state、ref、computed、watch、emit、provide/inject再以 Vue 为例很多人刚开始看不懂文档是因为这些词不是英语问题而是“框架语义”问题props属性简写父组件传下来的数据。单词全称是properties但在框架语境里就是“外部传入的参数”。state状态组件内部可变的数据。Vue 的data就是 state 的一种。ref引用的简写reference。ref可以拿到 DOM 实例或组件实例Vue 3 的ref还会包装成响应式对象。computed计算属性由其他状态推导出的值。核心特征是“依赖变化才重新计算”。watch侦听主动观察某个值的变化并执行副作用的回调。emit触发/发射子组件往外抛事件。emits: [change]表示子组件要触发一个 change 事件。slot插槽把内容“塞进”组件预留的位置。provide/inject提供/注入实现跨层级传值不需要逐层透传 props。reactive响应式的reactive()把一个普通对象变成响应式对象。unref解开 ref 的包装直接取值。这个“un-”前缀也很有用unsubscribe取消订阅、unmount卸载。以前端组件库心智模型来说props是“输入”emit是“输出”slot是“可替换区域”state是“内部记忆”这套模型几乎适配所有现代框架。把这些词放对位置Vue、React、甚至小程序都能很快上手。4. 工具链和协作场景里的高频词不写代码也在用前端开发不只是写组件还有一整套工具链和协作流程。每天要敲的命令、要看的 CI 日志、要处理的 git 冲突满屏都是英文。4.1 命令行和脚本命令init、dev、build、preview、lint、test、format现在的项目基本都是 Vite、Webpack 这类工具驱动的package.json 里的 scripts 几乎都是这几个词npm init npm run dev npm run build npm run preview npm run lint npm run testinit初始化生成一个新项目骨架。devdevelopment 的缩写开发模式。特点是带热更新速度快。build构建/打包把源码压缩、转译成生产环境可用的产物。preview预览本地预览构建产物。lint静态检查检查代码风格和潜在错误。ESLint 里的Lint本意是“线头”引申为找茬。test测试。format格式化prettier --write就是自动整理代码格式。这里有个很实际的坑npm run dev和npm run serve的区别。serve更多是“启动一个静态服务”的意思而dev强调“开发模式”。如果你看老项目跑的是npm run serve不用惊慌它只是把开发服务这个名字叫成了“服务”。4.2 Git 协作词汇clone、commit、push、pull、merge、rebase、stash、revertGit 是前端协作的必备工具这些词的语义高度自洽clone克隆把远程仓库完整复制一份到本地。commit提交把改动记录在本地版本历史里。常说“提交一个 commit”。push推送把本地提交推送到远程仓库。pull拉取把远程更新拉到本地。merge合并把一个分支的改动合并到当前分支。rebase变基把一个分支的提交“重放到”另一个分支之上。很多人怕 rebase其实理解“base基底”就能记换一个基底重新放。stash暂存把当前未提交的改动临时藏起来。字面意思就是“藏匿”。cherry-pick摘樱桃挑一个特定的 commit 应用到当前分支。revert还原通过新增一个反向提交来撤销之前的提交。协作时最容易懵的场景是合并冲突。控制台会显示CONFLICT (content)。conflict就是冲突content是内容也就是说内容的合并有冲突。并不难但如果你不知道conflict这个词光看到一个红色大写单词就容易慌。4.3 项目配置里的高频词config、alias、proxy、plugin、exclude、include、minify打开 Vite 或 Webpack 的配置文件高频词又换了一批config配置vite.config.js就是 Vite 的配置文件。alias别名给路径起一个短名字。指向src就是最常见的 alias 配置。proxy代理解决开发环境跨域。Vite 里配置 server.proxy把/api开头的请求转发到目标服务器。plugin插件扩展工具能力的模块。exclude/include排除/包含。这两个看似简单但理解错了会踩坑。比如 eslint 配置里exclude了某个目录那你改了那个目录的文件 lint 也不会报错。minify压缩/最小化去掉空格换行和缩短变量名。minified就是压缩后的文件。bundle打包产物多个模块合并之后的文件。code splitting代码分割就是把它拆成多个更小的包按需加载。tree-shaking摇晃树把没用到的代码像枯叶一样摇掉。这是前端打包优化里一个高频词词本身很形象。我在配置 proxy 的时候第一次看到rewrite: (path) path.replace(/^\/api/, )完全不知道在干嘛。后来理解了rewrite是“重写”replace是“替换”立刻明白这一段的作用是把请求路径里的/api前缀剥掉再转发给后端。这种词不需要背遇到一次、翻译一次、想明白一次就彻底记住了。5. 面试和进阶术语翻译成中文全会变成英文就懵前端面试有一个非常微妙的现象很多概念中文描述头头是道面试官换个英文说法就卡住了。比如中文说“闭包”大家点头。英文说closure有人反应不过来其实是同一个东西。这不是技术问题是词汇映射没形成。我整理几个面试高频词的英文表达和中文的对应关系帮助大家把“双通道”打通。5.1 事件循环相关event loop、microtask、macrotask、call stackEvent Loop是面试绕不开的题目但很多人的记忆点只有“事件循环”四个字英文拼写都不熟。这里有几个连带词event loop事件循环JS 单线程处理异步任务的核心机制。call stack调用栈当前正在执行的函数调用链。microtask微任务Promise.then、queueMicrotask、MutationObserver属于这类。macrotask宏任务setTimeout、setInterval、MessageChannel、I/O属于这类。callback queue/task queue任务队列宏任务排队的队列。这个知识点最经典的面试题就是“输出打印顺序”。用过 Node.js 的人都知道一个缩写process.nextTick它就是“下一个时钟周期再执行”优先级比Promise.then还高。英文里tick是“滴答一声”对应一轮循环的节拍。5.2 作用域和原型链closure、hoisting、lexical scope、prototypeclosure闭包。核心定义是“函数加上它声明时的词法环境”。注意lexical scope词法作用域是理解闭包的前提函数能访问的变量范围在书写代码的位置就确定了和调用位置无关。hoisting提升。var声明的变量会被“提升”到作用域顶部所以你会看到undefined而不是ReferenceError。hoist本义是“吊起来/升起”。prototype原型。prototype chain原型链是 JS 实现继承的机制。__proto__是实例指向原型的指针。this这个指向调用时的上下文对象。面试题“this 指向谁”考的就是这个。new构造新对象的关键字。instanceof判断“是否为某个构造函数的实例”。一个容易混淆的细节hoisting提升的是“声明”不是“赋值”所以console.log(a); var a 1;输出的是undefined而不是报错。如果你听懂面试官的英文问题里带hoisting就能快速对应到“变量提升”不会一句话答偏。5.3 性能和工程相关tree-shaking、code splitting、memory leak、garbage collectiontree-shaking字面意思是“摇树”具体指打包时移除未引用的代码。为什么叫摇树就像你摇一棵树枯死的叶子会掉下来。实现依赖 ES Module 的静态分析能力。code splitting代码分割。按路由或按组件拆分 bundle让首屏只加载必要代码。lazy load懒加载/按需加载。图片懒加载、路由懒加载里的lazy都是这个。memory leak内存泄漏。没用的内存没有释放越积越多页面越来越卡。garbage collection垃圾回收。JS 引擎自动回收不再使用的内存。GC是缩写。closure的副作用闭包本身容易造成内存泄漏因为被闭包引用的变量无法被垃圾回收。这两个词串起来正好构成一道综合面试题。我在面试里还经常听到closure和currying柯里化被搞混。currying是把多参数函数拆成一串单参数函数closure是作用域保留机制。虽然俩词长得像但完全是两个东西。建议把所有长得像的术语都专门做一张对照表面试前过一遍。6. 用查一个词的时间学十个词我的日常积累方法最后分享一个我一直用的方法不枯燥而且特别适合英语基础一般的人。6.1 把报错信息当成免费词库每次浏览器或终端报错不要急着复制到搜索引擎先自己读三遍把每个词都过一遍。我举例GET http://localhost:8080/api/user 401 (Unauthorized)翻译路径是GET请求方法localhost:8080本地地址/api/user接口路径401状态码Unauthorized未授权。读完之后你要形成一个完整的句子“对本地 8080 端口的 /api/user 发起了 GET 请求返回 401 未授权。”一旦你能把报错完整翻译成中文句子排查方向就明确多了检查 token、检查登录态、检查 headers。Console 里的每个报错几乎都是这样一类“填空式翻译”。你坚持读一周常见的报错词基本全认识了。6.2 看源码时做“语境化笔记”我不建议生背单词表而是建议在代码里做情景笔记。看到不认识的关键词随手在注释里写一句这个词出现的场景。举个例子Vue 3 的computed不知道什么意思时我就会写// computed: 根据依赖自动计算的值依赖变了它也跟着变 const fullName computed(() firstName.value lastName.value)下次再看到computed我想到的不只是“计算属性”四个字还有这个“姓名拼接”的代码画面。词汇脱离了上下文很容易忘但挂在代码场景里就忘不掉。再比如 Element Plus 组件里你看到一个属性popper-classpopper是弹层组件class是样式类。你会顺手查一下popper到底是什么然后发现它来自 Popper.js——一个专门做弹层定位的库。你从一个属性名出发最后面能扯出一整条知识链。6.3 用面试题反向背词准备面试的时候不要只刷中文题把经典问题换成英文关键词来记。比如“数组去重” 对应unique array“深拷贝和浅拷贝” 对应deep copy/shallow copy“防抖节流” 对应debounce/throttle“事件冒泡与捕获” 对应event bubbling/event capture“跨域” 对应cross-origin/CORS“前端路由模式” 对应history mode/hash mode“虚拟 DOM” 对应virtual DOM“响应式原理” 对应reactivity“依赖收集” 对应dependency collection这些词别看简单面试时从中文脑切换到英文嘴是需要练习的。你可以做一个小训练每看完一个知识点就用自己的话把英文关键词和中文概念放在一起说一遍比如“debounce是防抖它和throttle节流的区别在于……”。说到这里你不会卡壳面试就稳了。我自己的体会是“前端常用单词”根本不应该被当成一门额外功课它就是平时工作中随手可见的东西。你不会的每个词都在报错里、在源码里、在组件属性里反复出现。只要你每次多看一眼、多翻译一次而不是复制粘贴去搜索积累速度会非常快。等哪一天你发现自己看文档不再需要切翻译软件读报错第一眼就能锁定问题方向那时候你收获的不只是词汇量还有整个学习和排障效率的提升。
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门