前端面试考什么?常见考点+高频题解析
sinye56 2024-10-23 14:25 5 浏览 0 评论
前端面试题目会根据面试者的经历、岗位要求和面试官本身等因素而变化。大前端背景下,每个领域 1-2 个问题成为了更常见的面试提问规则。面试者的回答往往会影响面试官对其在这个领域的技术评价。
如果无话可答,则意味着一个领域没有分数,如果这个领域是岗位的必要项,便会直接影响面试结果。于是,面试者总是希望,尽可能地多答上题目,怎么才能做到这点呢?
- 第一,基础,包括原理,语言特性,设计模式,算法和数据结构,网络协议等。当我们可以从设计者或架构者的角度来看待一门语言、框架、协议时,即使不知道某个特性、用法,依然有可能类比推敲出答案。
- 第二,积累。前端技术发展极快,规范、语言、框架、工具、思想日新月异,关注相关更新,特别是我们正在使用的技术栈的变化,广度可以跨越经历的局限,让自己满足更多岗位的要求。
- 第三,引导。一方面,通过简历中技术熟练程度、项目和工作经历描述,擅长的要突出,不会的可以不写。另一方面,问题完全不会时,可以征询面试官意见,引导至我们会的问题。例如,XX 我不了解,但 XX 与之原理相同,我可以介绍一下吗?问题非常会时,可以引导面试官进一步提问。例如,XX 可以继续优化。
需要注意的是:
多答不是硬答。确实不会,大方承认,尽快进入下个问题,能减少对面试官主观上的影响。反之,完全不沾边,甚至错误的回答容易减少印象分。
多答不是唠叨。会的题目,应该答出尽可能多的得分点,除非面试官追问,请避免在一个得分点上展开过多,让面试官有更多时间提新问题,考核完全部领域,面试者也能有更多展示机会。
常见考点
了解了前端面试的基本原则,可以进入实战准备阶段了。对此,我们按照语言,将常见考点的基础知识结构整理了出来,帮助扣友们梳理知识结构,快速查漏补缺。
高频题测试
学海无涯「题」作舟,用一些题目来练习一下吧。下面的这些前端面试高频题,你都能答得出来吗?
Q:CSS 优先级规则是什么?
选择器与元素的相关度越高,优先级越高,具体规则如下:
开发者定义选择器 > 用户定义选择器 > 浏览器默认选择器
内联样式( style="" ) > 内( <style> )、外部样式( <link/> )
ID 选择器 > 类选择器、属性选择器、伪类选择器 > 类型选择器、伪元素选择器
相同优先级,书写顺序后 > 前
同级选择器,复合选择器 > 单选择器
自身的选择器 > 继承自父级的选择器
用户配置 !important 声明 > 开发者 !important 声明 > 其它
Q:什么是重排和重绘?
当DOM的样式或内容会被修改时,将触发重新渲染。除了属性值计算、单位换算外,渲染主要分为三个步骤:
- 布局:计算盒模型的位置,大小
- 绘制:填充盒模型的文字、颜色、图像、边框和阴影等可视效果
- 合并:所有图层绘制后,按层叠顺序合并为一个图层
重新渲染一般有三种执行路径:
- 重排:布局 → 绘制 → 合并
- 重绘:绘制 → 合并
- 合并:不同属性的修改,会触发不同的渲染路径
Q:Cookie 和 Session 的区别?
项目 | Cookie | Session |
存取值类型 | 字符串 | 大多数类型 |
存取位置 | 客户端 | 服务端,sessionId 非主动传参时,依赖 Cookie |
存取方式 | 文件 | 文件、内存、关系或非关系型数据库等 |
大小 | 受客户端限制 | 自行配置 |
过期时间 | 写入时设置,用户可清除 | 自行配置,用户可清除对应Cookie,服务端自动清除过期 Session |
兼容性 | 需浏览器开启,用户同意 | 不依赖 Cookie 时,通过 Get 或自定请求字段传入 |
作用范围 | 可设置跨子域,不可跨主域 | 用户身份唯一标识符不变时,可跨域,跨服务器。默认受限于 Cookie,仅限会话期间有效 |
Q:判断一个对象是不是数组 Array
- isPrototypeOf-测试一个对象是否在另一个对象的原型链上-prototype 不可省略
JavaScrpit
function isArray(o) {
return Array.prototype.isPrototypeOf(o)
}
- instanceof
- -用于检测构造函数的 prototype 属性是否出现在某个实例对象的原型链上
JavaScrpit
function isArray(o) {
return o instanceof Array
}
- Array.isArray-用于确定传递的值是否是一个 Array
JavaScrpit
function isArray(o) {
return Array.isArray(o)
} *
- Object.prototype.toString-方法返回一个表示对象的字符串
JavaScrpit
function isArray(o) {
return Object.prototype.toString.call(o) === '[object Array]'
}
Q:如何实现一个组件,前端组件的设计原则是什么?
- 单一原则:一个组件只做一件事
- 通过脑图、结构图,标识组件的 State Props Methods 生命周期,表示层次和数据流动关系
- State 和 Props-扁平化:最多使用一层嵌套,便于对比数据变化,代码更简洁-无副作用:State 仅响应事件,不受其他 State 变化影响
- 松耦合-组件应该独立运行,不依赖其它模块
- 配置、模拟数据、非技术说明文档、helpers、utils 与 组件代码分离
- 视图组件只关心 视图,数据获取,过滤,事件处理应在外部 JS 或 父组件 中处理
- Kiss原则(Keep it Simple Stupid)-不需要 State 时,使用 函数组件-不要传递不需要的 Props-及时抽取复杂组件为独立组件-不要过早优化
- 参考 CSS 的 OOSS 方法论,分离 位置 和 样式,利于实现皮肤
- 考虑 多语言、无障碍 等后期需求
Q:对比 express 和 koa?
- Handler 处理方式-Express:回调函数-Koa:Async / Await
- 中间件-Express:同一线程,线性传递-Koa:洋葱模型,级联传递
- 响应机制-Express:res.send 立即响应
- -Koa:设置 ctx.body ,可累加,经过中间件后响应
前端通关手册
上面分享的这些前端考点和高频题都来自于本次 LeetBook 的上新。想要解锁更多内容,点击下面的图片查看吧。
《前端通关手册:JavaScript》:力扣
《前端通关手册:HTML&CSS》: 力扣
实用的前端面试突围指南书,以面试题目作为线索,从基础到更新,通过多方法,讲概念,让面试者的回答在广度或深度上能够脱颖而出,带你轻松掌握 JavaScript、HTML、CSS 的面试考点。
编者介绍:
吴小宇,做网站 13 年,2 次创业,土木、教育、前端 3 次跨领域转行,入行 1 年成为组长,热爱技术,尊重商业和人性,擅长多角度解决问题。
当然,在面试时除了前端方面的专业知识,也会问到一些计算机通用基础问题,因此本次上新还特别为扣友们准备了一本校招通用的通关手册。
《校招基础知识详解》: 力扣
互联网校招基础考点一网打尽,用简单易懂的讲解将面试知识串连起来,帮你快速理清多而杂的知识点,构建起校招技能树,面试游刃有余。
编者介绍:
CyC2018,Github 校招面试项目 CS-Notes 作者,排名 10。校招期间收获多家大厂 Offer,具有丰富的面试经验。
针对这部分基础,我们同样整理了一份实用的考点大纲:
技术会迭代,我们也会与时俱进,不断精益内容。希望能够通过 LeetBook 节省面试者的时间,提高投入产出比,在准备面试的过程中,真正获得知识和能力的提升。
最后,祝福所有扣友都能找到满意的工作!
相关推荐
- 程序员:JDK的安装与配置(完整版)_jdk的安装方法
-
对于Java程序员来说,jdk是必不陌生的一个词。但怎么安装配置jdk,对新手来说确实头疼的一件事情。我这里以jdk10为例,详细的说明讲解了jdk的安装和配置,如果有不明白的小伙伴可以评论区留言哦下...
- Linux中安装jdk并配置环境变量_linux jdk安装教程及环境变量配置
-
一、通过连接工具登录到Linux(我这里使用的Centos7.6版本)服务器连接工具有很多我就不一一介绍了今天使用比较常用的XShell工具登录成功如下:二、上传jdk安装包到Linux服务器jdk...
- 麒麟系统安装JAVA JDK教程_麒麟系统配置jdk
-
检查检查系统是否自带java在麒麟系统桌面空白处,右键“在终端打开”,打开shell对话框输入:java–version查看是否自带java及版本如图所示,系统自带OpenJDK,要先卸载自带JDK...
- 学习笔记-Linux JDK - 安装&配置
-
前提条件#检查是否存在JDKrpm-qa|grepjava#删除现存JDKyum-yremovejava*安装OracleJDK不分系统#进入安装文件目...
- Linux新手入门系列:Linux下jdk安装配置
-
本系列文章是把作者刚接触和学习Linux时候的实操记录分享出来,内容主要包括Linux入门的一些理论概念知识、Web程序、mysql数据库的简单安装部署,希望能够帮到一些初学者,少走一些弯路。注意:L...
- 测试员必备:Linux下安装JDK 1.8你必须知道的那些事
-
1.简介在Oracle收购Sun后,Java的一系列产品就被整合到Oracle官网中,打开官网乍眼一看也不知道去哪里下载,还得一个一个的摸索尝试,而且网上大多数都是一些Oracle收购Sun前,或者就...
- Linux 下安装JDK17_linux 安装jdk1.8 yum
-
一、安装环境操作系统:JDK版本:17二、安装步骤第一步:下载安装包下载Linux环境下的jdk1.8,请去官网(https://www.oracle.com/java/technologies/do...
- 在Ubuntu系统中安装JDK 17并配置环境变量教程
-
在Ubuntu系统上安装JDK17并配置环境变量是Java开发环境搭建的重要步骤。JDK17是Oracle提供的长期支持版本,广泛用于开发Java应用程序。以下是详细的步骤,帮助你在Ubuntu系...
- 如何在 Linux 上安装 Java_linux安装java的步骤
-
在桌面上拥抱Java应用程序,然后在所有桌面上运行它们。--SethKenlon(作者)无论你运行的是哪种操作系统,通常都有几种安装应用程序的方法。有时你可能会在应用程序商店中找到一个应用程序...
- Windows和Linux环境下的JDK安装教程
-
JavaDevelopmentKit(简称JDK),是Java开发的核心工具包,提供了Java应用程序的编译、运行和开发所需的各类工具和类库。它包括了JRE(JavaRuntimeEnviro...
- linux安装jdk_linux安装jdk软连接
-
JDK是啥就不用多介绍了哈,外行的人也不会进来看我的博文。依然记得读大学那会,第一次实验课就是在机房安装jdk,编写HelloWorld程序。时光飞逝啊,一下过了十多年了,挣了不少钱,买了跑车,娶了富...
- linux安装jdk,全局配置,不同用户不同jdk
-
jdk1.8安装包链接:https://pan.baidu.com/s/14qBrh6ZpLK04QS8ogCepwg提取码:09zs上传文件解压tar-zxvfjdk-8u152-linux-...
- 运维大神教你在linux下安装jdk8_linux安装jdk1.7
-
1.到官网下载适合自己机器的版本。楼主下载的是jdk-8u66-linux-i586.tar.gzhttp://www.oracle.com/technetwork/java/javase/downl...
- window和linux安装JDK1.8_linux 安装jdk1.8.tar
-
Windows安装JDK1.8的步骤:步骤1:下载JDK打开浏览器,找到JDK下载页面https://d.injdk.cn/download/oraclejdk/8在页面中找到并点击“下载...
- 最全的linux下安装JavaJDK的教程(图文详解)不会安装你来打我?
-
默认已经有了linux服务器,且有root账号首先检查一下是否已经安装过java的jdk任意位置输入命令:whichjava像我这个已经安装过了,就会提示在哪个位置,你的肯定是找不到。一般我们在...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- oracle忘记用户名密码 (59)
- oracle11gr2安装教程 (55)
- mybatis调用oracle存储过程 (67)
- oracle spool的用法 (57)
- oracle asm 磁盘管理 (67)
- 前端 设计模式 (64)
- 前端面试vue (56)
- linux格式化 (55)
- linux图形界面 (62)
- linux文件压缩 (75)
- Linux设置权限 (53)
- linux服务器配置 (62)
- mysql安装linux (71)
- linux启动命令 (59)
- 查看linux磁盘 (72)
- linux用户组 (74)
- linux多线程 (70)
- linux设备驱动 (53)
- linux自启动 (59)
- linux网络命令 (55)
- linux传文件 (60)
- linux打包文件 (58)
- linux查看数据库 (61)
- linux获取ip (64)
- linux进程通信 (63)