百度-文库-校招 · 第 1 轮 · 二面
← 第 1 轮 · 返回本次面经 · 已是最后一轮 → 本轮要点: 二面深入考察了前端核心知识的应用和原理理解。重点包括CSS优先级、闭包与内存管理、JavaScript继承的多种实现方式、原型链的深层理解、虚拟DOM的性能优化原理以及Vue框架的高级特性。题目更侧重于“为什么”和“如何实现”,要求候选人不仅知其然,更要知其所以然。 本轮共 12 道题。答案默认折叠,便于先自行作答。 1. 自我介绍,没有实习过。 题目要点 沟通表达能力:能否清晰、自信地介绍自己。 潜力与热情:在没有实习经历的情况下,如何通过个人项目、技术博客、开源贡献等来证明自己的技术热情和学习能力。 求职动机:为什么选择这个岗位和公司。 参考答案 此题为个人经验总结,请根据自身情况作答。核心是突出自己的优势、学习能力和对前端的热情,用项目经验或学习成果来弥补实习经历的不足。 2. 最终颜色是什么?为什么? <div class="box" id="content" style="color:red"></div> .box { color: blue } #content { color: green } 题目要点 CSS优先级(Specificity):这是CSS核心概念之一,考察对不同选择器权重的理解和计算能力。 CSS规则来源:是否了解行内样式、内部样式表、外部样式表的优先级关系。 参考答案 1.1 原理说明 CSS的优先级(Specificity),也常被称为特殊性或权重,是浏览器用来决定当多个规则应用到同一个元素上时,哪一条规则生效的计算方法。 优先级的计算规则可以总结为一个四元组 (a, b, c, d): a: 行内样式(Inline styles):如 style="color: red;"。如果存在,a为1,否则为0。 b: ID选择器:如 #content。b为ID选择器的数量。 c: 类选择器、属性选择器、伪类选择器:如 .box, [type="text"], :hover。c为这些选择器的总数量。 d: 标签选择器、伪元素选择器:如 div, ::before。d为这些选择器的总数量。 比较规则:从a开始,逐位比较。a大的胜出;如果a相同,则比较b,b大的胜出;以此类推。只有在优先级完全相同时,才会根据样式在代码中出现的顺序来决定,“后来者居上”。 另外,!important声明拥有最高优先级,它会覆盖任何其他声明,但应避免滥用。 1.2 核心用法 + 示例代码 我们来分析题目中的三个样式规则: 行内样式:style="color:red" 优先级计算:a=1, b=0, c=0, d=0 -> (1, 0, 0, 0) ID选择器:#content { color: green } 优先级计算:a=0, b=1, c=0, d=0 -> (0, 1, 0, 0) 类选择器:.box { color: blue } 优先级计算:a=0, b=0, c=1, d=0 -> (0, 0, 1, 0) 比较结果: ...