技术岗WEB面经

博客介绍了session与cookie的区别,cookie将数据记录在浏览器客户端,session将数据记录在服务器。还讲解了JS的原型和原型链,原型用于生产对象实现面向对象,原型链是JS实现继承的方式,通过指针递归指向NULL。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

session与cookie的区别?

cookie将数据记录在浏览器客户端上,session将数据记录在服务器上。

 

原型:相当于一个模板,用来生产对象。原型用来实现面向对象,JS就是基于原型的面向对象。

原型链:原型对象中的指针指向构造函数,构造函数上的指针指向原型实例最终递归地指向NULL。是JS实现继承的方式。

 

 

 

<think>好的,我现在需要处理用户关于Web面试经验总结的请求。首先,用户可能希望得到全面试准备指导,涵盖前端、后端以及常见问题的解答。我要确保回答结构清晰,分点列出,符合用户提到的系统级指令中的中文回答和正确使用LaTeX格式的要求。 首先,用户可能想知道前端面试的重点。HTML/CSS、JavaScript、框架和项目经验是关键点。需要注意每个部分的具体细节,比如HTML5新特性、盒模型、Flex布局等。在JavaScript部分,闭包、原型链、ES6特性都是常见问题,需要提及。框架方,React和Vue的区别以及生命周期是常问的,可能需要用行内公式示例,比如虚拟DOM的diff算法时间复杂度$O(n)$。 然后是后端面试,包括语言基础、数据库、系统设计和项目经验。比如Java的集合框架、多线程,数据库的索引优化、事务隔离级别。系统设计部分,RESTful API设计原则和分布式系统问题如缓存穿透需要解释。这里可能需要用独立公式,比如CAP定理的公式,但用户示例中没有使用,所以暂时不考虑,除非必要。 接下来是常见问题,如项目难点、技术学习、团队协作。这些需要给出回答思路,帮助用户准备具体例子。此外,算法题也是重点,需要提到LeetCode和《剑指Offer》,可能涉及时间复杂度的计算,比如快速排序的平均复杂度$O(n \log n)$。 然后生成相关问题,确保覆盖用户可能感兴趣的扩展方向,如前端性能优化、后端高并发设计、项目亮点描述等。最后检查引用部分,用户示例中有引用标识,但当前内容中没有引用来源,可能需要添加,但用户提供的参考信息中没有具体引用来源,所以可能忽略或假设引用来自常见资料。 还要注意LaTeX的正确使用,所有行内数学表达式用$...$,独立公式用$$...$$,但用户示例中大部分是行内的,如时间复杂度。确保代码块用正确的语法,比如Python示例,但这里可能涉及JavaScript或其它语言的代码,但用户问题不涉及具体代码,所以可能不需要。 最后整理结构,确保各部分清晰,语言简洁,符合中文表达习惯,避免使用Markdown格式,使用自然的分段和标号。检查是否遗漏重要点,比如面试软技能、行为问题等,但用户可能更关注技术方,所以集中在技术准备上。</think># Web面试经验总结 ## 一、前端面试重点 ### 1. HTML/CSS核心 - HTML5新特性:语义化标签(如`<article>`)、Web Storage、WebSocket - CSS盒模型:标准盒模型与怪异盒模型对比,通过`box-sizing`属性切换 - 布局方案:Flex布局实现响应式设计,Grid布局二维排版,浮动清除技巧 - 性能优化:雪碧图实现原理(通过$background-position$定位),重绘与回流优化 ### 2. JavaScript进阶 - 闭包应用场景:模块化开发中实现私有变量,柯里化函数实现 - 原型链机制:`__proto__`与`prototype`关系图解,`new`操作符实现原理 - ES6特性:箭头函数`this`绑定规则,Promise异步处理链,`let/const`暂时性死区 - 框架原理:虚拟DOM的diff算法时间复杂度$O(n)$,Vue双向绑定实现(Object.defineProperty) ## 二、后端面试要点 ### 1. 语言基础 - Java集合框架:HashMap扩容机制(负载因子0.75,容量翻倍) - 并发编程:线程池参数设置(核心线程数=CPU核数+1),synchronized锁升级过程 - 设计模式:Spring框架中的单例模式实现(注册式单例),代理模式在AOP中的应用 ### 2. 数据库优化 - 索引设计:B+树高度计算(假设每页16KB,单记录200B,3层可存$10^6$级数据) - 事务隔离:MVCC实现原理(版本链与ReadView机制),解决幻读的Next-Key Lock - 慢查询优化:通过`EXPLAIN`分析执行计划,关注`type`列(最优const到最差ALL) ## 三、高频面试问题 1. **项目难点突破** "在电商促销系统开发中,通过二级缓存(Redis+本地缓存)解决库存超卖问题,采用Lua脚本保证原子性[^1]" 2. **技术学习路径** "系统学习React源码时,先理解Fiber架构的链表结构,再分析调度器的工作循环" 3. **团队协作案例** "在前后端联调中,使用Swagger定义接口规范,通过Mock.js生成测试数据提升协作效率" ## 四、算法准备建议 - LeetCode刷题策略:按类型分类(数组->链表->树),每日保持3题练习量 - 重点题型:字符串处理(KMP算法时间复杂度$O(n+m)$)、动态规划(背包问题状态转移方程) - 白板编程:先阐述思路(如快速排序分治策略),再编写可运行代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值