# 谷歌前端面试问题 > 原文:[https://www . frontendinterviewhandbook . com/companies/Google-front-end-interview-questions/](https://www.frontendinterviewhandbook.com/companies/google-front-end-interview-questions/)
因为是谷歌,候选人可以期待测试基本的计算机科学概念以及他们的前端知识/技能。 ## JavaScript[](#javascript "Direct link to heading") * 实现 Google 文档的大纲视图。 * HTML 节点上的 DFS。 * 执行`throttle`。 * [大前端练习题](https://www.greatfrontend.com/questions/javascript/throttle) * 如何做一个每 50 毫秒只调用输入函数 f 的函数? * [大前端练习题](https://www.greatfrontend.com/questions/javascript/throttle) * 怎么做一个带 f 的函数,超时返回一个调用 f 的函数? * [大前端练习题](https://www.greatfrontend.com/questions/javascript/debounce) * 给定一条时间线,编写 JavaScript 来选择时间线选择范围内的所有节点。 ## 用户界面编码[](#user-interface-coding "Direct link to heading") * 设计一个滑块组件。 * 设计一个井字游戏/设计一个井字游戏的算法。 * 实现嵌套复选框(当父复选框被选中时,子复选框也被选中,反之亦然。使用``)。类似于[不确定的复选框](https://css-tricks.com/indeterminate-checkboxes/)。 * 使用 JavaScript 设计一个网页,当你到达页面底部时可以自动加载新文章。您可以使用 AJAX 和 JavaScript 事件监听器。 * 使用 HTML、CSS、JavaScript 编写一个 UI,允许用户在表单的文本输入字段中输入行数和列数,并呈现一个表格。 例如:行数:4,列数:5,“提交”按钮。点击“提交”按钮将显示下表(忽略样式): | one | eight | nine | Sixteen | Seventeen | | --- | --- | --- | --- | --- | | Two | seven | Ten | Fifteen | Eighteen | | three | six | Eleven | Fourteen | Nineteen | | four | five | Twelve | Thirteen | Twenty | ## 琐事[](#trivia "Direct link to heading") * 解释 CSS 盒子模型。 * [在大前端阅读答案](https://www.greatfrontend.com/questions/quiz/css/explain-your-understanding-of-the-box-model-and-how-you-would-tell-the-browser-in-css-to-render-your-layout-in-different-box-models) * 当你在浏览器中输入一个 URL 并点击回车会发生什么? * 给定网页上的一些文本,有多少种方法可以让这些文本消失? * 如何在不刷新页面的情况下将数据从网页发送到服务器? * [在大前端阅读答案](https://www.greatfrontend.com/questions/quiz/javascript/what-are-the-advantages-and-disadvantages-of-using-ajax) ## 系统设计[](#system-design "Direct link to heading") * 设计 JS Bin。 * 你如何创建一个网页使用的谷歌分析软件开发工具包? * 设计表情自动完成。 ## 算法[](#algorithm "Direct link to heading") * 扫雷舰问题。编写一个函数`reveal()`,当用户点击一个图块时,输出显示的图块数量。每个区块显示其相邻的炸弹数量。如果用户点击一个炸弹,游戏就结束了。如果该图块为 0,则显示其所有邻居。 * 给你四个数字(int 类型),有四个基本的数学运算符供你使用(+、-、x、/)。给定任意的方法对数字进行分组,并使用任何运算符,判断是否可以从四个数字中得到 24。这些数字必须按照它们出现的顺序进行处理。 * 寻找 k 个最近点。 *来源: [Glassdoor Google 前端软件工程师面试问题](https://www.glassdoor.sg/Interview/Google-Front-End-Software-Engineer-Interview-Questions-EI_IE9079.0,6_KO7,34.htm)、 [Google |前端工程师](https://leetcode.com/discuss/interview-question/271736/google-front-end-engineer-onsite-interview)、T5】*