HTML 与 CSS 核心考点

对于 web前端开发面试题初级 求职者来说,HTML和CSS是基石。面试官通常不会考察过于冷门的标签,而是重点关注语义化、布局模型及兼容性处理。

HTML基础
CSS布局
响应式设计

1. 语义化标签的重要性

语义化是指使用正确的HTML标签来表达内容。例如,使用 <header> 表示头部,<footer> 表示底部,<article> 表示文章。

  • SEO优化:搜索引擎更容易理解页面结构。
  • 可访问性:屏幕阅读器能更好地解析页面。
  • 代码可读性:团队协作时更易维护。

2. 常见面试题示例

Doctype的作用是什么?

<!DOCTYPE html> 声明文档类型为HTML5。它告诉浏览器以标准模式渲染页面,避免怪异模式(Quirks Mode)导致的布局错乱。在初级面试中,需明确区分标准模式与怪异模式的盒模型差异。

HTML5有哪些新特性?

主要包括:新增语义化标签(<nav>, <section>等)、多媒体标签(<audio>, <video>)、本地存储(LocalStorage, SessionStorage)、Canvas/SVG绘图、表单新类型(email, date, range等)以及API如地理位置、历史管理。

1. 盒模型(Box Model)

CSS盒模型是布局的核心。包括内容(Content)、内边距(Padding)、边框(Border)和外边距(Margin)。

属性 说明 默认值
content-box 标准盒模型,width仅包含content 标准
border-box IE盒模型,width包含content+padding+border 通常需手动设置

面试常问:box-sizing: border-box; 的作用是什么?答案是:让元素的宽度包含padding和border,便于计算布局宽度,是现代前端开发的标准实践。

2. Flexbox 布局

Flexbox(弹性盒子)是一维布局模型,非常适合解决对齐和空间分配问题。

.container { display: flex; justify-content: center; / 主轴居中 / align-items: center; / 交叉轴居中 / flex-wrap: wrap; / 允许换行 / }

重点掌握属性:justify-content, align-items, flex-direction, flex-grow, flex-shrink。

1. 媒体查询(Media Queries)

响应式设计的基础。通过 @media 规则检测视口宽度,应用不同的CSS样式。

/ 平板及以下 / @media (max-width: 768px) { .sidebar { display: none; } .main-content { width: 100%; } }

2. 单位选择

初级面试常问 px, em, rem, vw, vh 的区别。

  • px:绝对单位,固定像素。
  • em:相对于父元素字体大小。
  • rem:相对于根元素(html)字体大小,推荐用于全局缩放。
  • vw/vh:相对于视口宽度/高度的百分比。

JavaScript 核心逻辑

JS是前端面试的重头戏。对于 web前端开发面试题初级 岗位,重点考察基础语法、DOM操作、事件循环及ES6新特性。

数据类型与类型判断

JavaScript有7种基本数据类型:Undefined, Null, Boolean, Number, String, Symbol, BigInt。对象类型是Object。

// 正确判断数组 Array.isArray(arr); // 正确判断对象 Object.prototype.toString.call(obj) === '[object Object]';

作用域与闭包

闭包是指有权访问另一个函数作用域中变量的函数。常考场景:循环中异步回调、数据封装。

for (var i = 0; i < 3; i++) { setTimeout(() => console.log(i), 100); } // 输出: 3, 3, 3 // 修复: 使用 let 或 IIFE

DOM 操作

增删改查DOM元素。注意区分 getElementById, querySelector, createElement 等API。

事件委托:利用事件冒泡,将子元素的事件监听器绑定在父元素上,提高性能。

异步编程

从回调函数到 Promise,再到 Async/Await。理解事件循环(Event Loop)机制。

async function fetchData() { try { const res = await axios.get('/api/data'); console.log(res.data); } catch (err) { console.error(err); } }

工具链与框架基础

虽然初级岗位不要求精通框架,但了解现代开发流程和基础概念是加分项。

1. 版本控制 Git

常用命令
git add, git commit, git push, git pull

必须掌握基本的代码提交和同步流程。了解 git merge 与 git rebase 的区别更佳。

冲突解决
如何处理代码冲突?

当多人修改同一文件同一位置时发生。需手动打开文件,标记冲突部分(<<<<, ====, >>>>),选择保留哪部分代码,然后重新提交。

2. 前端框架概念(Vue/React)

初级面试可能问及MVVM模式或虚拟DOM概念。

  • 虚拟DOM:在内存中维护一个DOM树,通过Diff算法最小化真实DOM操作,提升性能。
  • 数据驱动视图:修改数据,视图自动更新,无需手动操作DOM。
  • 组件化:将页面拆分为独立可复用的模块,提高开发效率。

软技能与职业发展

除了技术,面试官也关注学习能力、沟通能力和解决问题的思路。

你如何学习新技术?

建议回答:官方文档是首选,其次是优质技术博客、视频教程,最后通过小项目实践验证。强调持续学习和动手能力的结合。

遇到解决不了的Bug怎么办?

1. 复现问题,缩小范围;2. 使用调试工具(Chrome DevTools)断点调试;3. 搜索错误信息或查看社区(StackOverflow, GitHub Issues);4. 向同事请教,并记录解决方案。

网友还关心:高频面试题汇总

以下整理了 web前端开发面试题初级 岗位中最常出现的10个问题,并给出深度解答。

1. 什么是跨域?如何解决?

跨域是指浏览器从A域名请求B域名的资源,因同源策略(协议、域名、端口一致)而被拦截。解决方法:后端配置CORS头、JSONP(仅限GET)、代理服务器(开发环境常用webpack devServer proxy)。

2. localStorage 和 sessionStorage 的区别?

两者都属于Web Storage API,容量约5MB。区别在于生命周期:localStorage 数据永久保存,除非手动删除;sessionStorage 数据在页面会话结束时(关闭标签页)清除。

3. CSS选择器优先级如何计算?

优先级顺序:!important > 内联样式 > ID选择器 > 类/伪类/属性选择器 > 元素选择器 > 通配符。同优先级时,后定义的覆盖先定义的。

4. 解释一下 this 关键字。

this 指向取决于函数调用方式:普通函数调用指向全局对象(严格模式下为undefined);方法调用指向调用对象;构造函数调用指向新实例;箭头函数无自己的this,继承外层作用域。

5. 什么是防抖(Debounce)和节流(Throttle)?

两者用于控制函数执行频率。防抖:事件结束后n秒内不再触发才执行(如搜索框输入)。节流:单位时间内只执行一次(如滚动加载、按钮点击)。

6. HTTP状态码有哪些常见值?

200 OK, 301/302 重定向, 403 禁止访问, 404 未找到, 500 服务器内部错误, 502/504 网关错误。

7. 如何优化网页加载速度?

减少HTTP请求(合并文件)、压缩资源(Gzip)、懒加载图片、使用CDN、代码分割(Code Splitting)、缓存策略等。

8. CSS中 position 有哪些值?

static(默认)、relative(相对定位)、absolute(绝对定位,脱离文档流)、fixed(固定定位,视口参照)、sticky(粘性定位)。

9. 什么是原型链?

JavaScript中对象通过 __proto__ 指向原型对象,原型对象也有 __proto__,直到指向 null,形成链式结构。这是继承的基础。

10. 前端安全常识?

XSS(跨站脚本攻击):转义用户输入。CSRF(跨站请求伪造):使用Token验证。HTTPS:加密传输。