HTML 与 CSS 核心考点
对于 web前端开发面试题初级 求职者来说,HTML和CSS是基石。面试官通常不会考察过于冷门的标签,而是重点关注语义化、布局模型及兼容性处理。
1. 语义化标签的重要性
语义化是指使用正确的HTML标签来表达内容。例如,使用 <header> 表示头部,<footer> 表示底部,<article> 表示文章。
- SEO优化:搜索引擎更容易理解页面结构。
- 可访问性:屏幕阅读器能更好地解析页面。
- 代码可读性:团队协作时更易维护。
2. 常见面试题示例
<!DOCTYPE html> 声明文档类型为HTML5。它告诉浏览器以标准模式渲染页面,避免怪异模式(Quirks Mode)导致的布局错乱。在初级面试中,需明确区分标准模式与怪异模式的盒模型差异。
主要包括:新增语义化标签(<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(弹性盒子)是一维布局模型,非常适合解决对齐和空间分配问题。
重点掌握属性:justify-content, align-items, flex-direction, flex-grow, flex-shrink。
1. 媒体查询(Media Queries)
响应式设计的基础。通过 @media 规则检测视口宽度,应用不同的CSS样式。
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。
作用域与闭包
闭包是指有权访问另一个函数作用域中变量的函数。常考场景:循环中异步回调、数据封装。
DOM 操作
增删改查DOM元素。注意区分 getElementById, querySelector, createElement 等API。
事件委托:利用事件冒泡,将子元素的事件监听器绑定在父元素上,提高性能。
异步编程
从回调函数到 Promise,再到 Async/Await。理解事件循环(Event Loop)机制。
工具链与框架基础
虽然初级岗位不要求精通框架,但了解现代开发流程和基础概念是加分项。
1. 版本控制 Git
必须掌握基本的代码提交和同步流程。了解 git merge 与 git rebase 的区别更佳。
当多人修改同一文件同一位置时发生。需手动打开文件,标记冲突部分(<<<<, ====, >>>>),选择保留哪部分代码,然后重新提交。
2. 前端框架概念(Vue/React)
初级面试可能问及MVVM模式或虚拟DOM概念。
- 虚拟DOM:在内存中维护一个DOM树,通过Diff算法最小化真实DOM操作,提升性能。
- 数据驱动视图:修改数据,视图自动更新,无需手动操作DOM。
- 组件化:将页面拆分为独立可复用的模块,提高开发效率。
软技能与职业发展
除了技术,面试官也关注学习能力、沟通能力和解决问题的思路。
建议回答:官方文档是首选,其次是优质技术博客、视频教程,最后通过小项目实践验证。强调持续学习和动手能力的结合。
1. 复现问题,缩小范围;2. 使用调试工具(Chrome DevTools)断点调试;3. 搜索错误信息或查看社区(StackOverflow, GitHub Issues);4. 向同事请教,并记录解决方案。
网友还关心:高频面试题汇总
以下整理了 web前端开发面试题初级 岗位中最常出现的10个问题,并给出深度解答。
跨域是指浏览器从A域名请求B域名的资源,因同源策略(协议、域名、端口一致)而被拦截。解决方法:后端配置CORS头、JSONP(仅限GET)、代理服务器(开发环境常用webpack devServer proxy)。
两者都属于Web Storage API,容量约5MB。区别在于生命周期:localStorage 数据永久保存,除非手动删除;sessionStorage 数据在页面会话结束时(关闭标签页)清除。
优先级顺序:!important > 内联样式 > ID选择器 > 类/伪类/属性选择器 > 元素选择器 > 通配符。同优先级时,后定义的覆盖先定义的。
this 指向取决于函数调用方式:普通函数调用指向全局对象(严格模式下为undefined);方法调用指向调用对象;构造函数调用指向新实例;箭头函数无自己的this,继承外层作用域。
两者用于控制函数执行频率。防抖:事件结束后n秒内不再触发才执行(如搜索框输入)。节流:单位时间内只执行一次(如滚动加载、按钮点击)。
200 OK, 301/302 重定向, 403 禁止访问, 404 未找到, 500 服务器内部错误, 502/504 网关错误。
减少HTTP请求(合并文件)、压缩资源(Gzip)、懒加载图片、使用CDN、代码分割(Code Splitting)、缓存策略等。
static(默认)、relative(相对定位)、absolute(绝对定位,脱离文档流)、fixed(固定定位,视口参照)、sticky(粘性定位)。
JavaScript中对象通过 __proto__ 指向原型对象,原型对象也有 __proto__,直到指向 null,形成链式结构。这是继承的基础。
XSS(跨站脚本攻击):转义用户输入。CSRF(跨站请求伪造):使用Token验证。HTTPS:加密传输。