米哈游Web前端面试题解析:事件委托、this关键字与浏览器存储
162 浏览量
更新于2024-08-03
收藏 3KB TXT 举报
“米哈游web前端面试部分题目”
在前端求职面试中,米哈游可能会考察一系列技术和实践经验。以下是对题目中涉及知识点的详细解释:
1. **事件委托**:事件委托是一种优化JavaScript事件处理的策略,基于事件冒泡机制。它允许我们在父元素上设置一个事件处理器,来响应所有子元素的事件,减少了为每个子元素单独添加事件监听器的需求,从而节省内存和提高性能。然而,如果不恰当使用,可能导致事件处理混乱,比如在多个相似元素上处理相同事件时可能产生误判。
2. **this关键字**:在JavaScript中,`this`的值取决于函数调用的上下文。在非严格模式下,全局函数中的`this`通常指向全局对象(浏览器环境中是`window`)。在构造函数中,`this`指向新创建的实例。`call`、`apply`和`bind`方法可以显式设置`this`的值。箭头函数不同,其`this`值继承自外层作用域,不具有自己的`this`绑定。
3. **浏览器存储方式**:
- **Cookie**:小型文本文件,存储在客户端,通常用于保持登录状态。每个Cookie大小约4KB,每个域名下的Cookie数量有限制。
- **LocalStorage**:持久化的键值对存储,数据在浏览器关闭后仍然存在,但仅限于同源策略。
- **SessionStorage**:与LocalStorage类似,但数据仅在当前会话中有效,关闭窗口或标签页后数据将被清除。
- **WebSQL**:已废弃的数据库存储方式,被IndexedDB取代。
- **IndexedDB**:更复杂的数据库存储,适合大量结构化数据的存储。
4. **Session**:当浏览器崩溃后,即使恢复,JSESSIONID(sessionid)会丢失,但服务器端的sessionid通常不会立即销毁。用户重新访问时,服务器会创建新的session。
5. **Cookie存储大小限制**:不同浏览器对每条Cookie的大小和每个域名下的总Cookie数量有不同的限制,大致每条Cookie不超过4KB。
6. **HttpOnly**:HttpOnly标记设置在Cookie中,目的是防止XSS攻击。因为JavaScript无法访问带有此标志的Cookie,从而保护敏感信息,如用户认证凭证。
7. **页面渲染过程**:
- 解析HTML构建DOM树
- 解析CSS构建CSSOM树
- 合并DOM和CSSOM形成渲染树
- 布局阶段确定每个节点的位置
- 绘制阶段将节点绘制到屏幕
8. **路由模式及参数传递**:
- **Hash模式**:URL中使用`#`来改变路径,参数附在`#`后面,例如`#/path?param=value`,不刷新页面。
- **History模式**:利用HTML5 History API,URL看起来像常规服务器路径,如`/path?param=value`,需要服务器配置支持。
- **Abstract模式**:抽象模式,主要用于库内部使用,不依赖特定的URL结构。
- 参数传递通常通过URL查询字符串(`?param=value`)、路由路径中的动态段(如`/user/:userId`)或通过组件状态管理工具(如Redux或Vue Router的`props`)进行。
这些知识点是前端开发人员应该熟悉的基本概念,对于面试准备至关重要。了解并能熟练应用这些知识,将有助于在面试中表现出色。
2024-03-10 上传
2024-03-10 上传
2023-10-22 上传
2023-07-17 上传
2023-09-19 上传
2023-04-25 上传
2023-09-05 上传
2023-02-07 上传
2023-05-10 上传
飞影铠甲
- 粉丝: 4442
- 资源: 219
最新资源
- Postman安装与功能详解:适用于API测试与HTTP请求
- Dart打造简易Web服务器教程:simple-server-dart
- FFmpeg 4.4 快速搭建与环境变量配置教程
- 牛顿井在围棋中的应用:利用牛顿多项式求根技术
- SpringBoot结合MySQL实现MQTT消息持久化教程
- C语言实现水仙花数输出方法详解
- Avatar_Utils库1.0.10版本发布,Python开发者必备工具
- Python爬虫实现漫画榜单数据处理与可视化分析
- 解压缩教材程序文件的正确方法
- 快速搭建Spring Boot Web项目实战指南
- Avatar Utils 1.8.1 工具包的安装与使用指南
- GatewayWorker扩展包压缩文件的下载与使用指南
- 实现饮食目标的开源Visual Basic编码程序
- 打造个性化O'RLY动物封面生成器
- Avatar_Utils库打包文件安装与使用指南
- Python端口扫描工具的设计与实现要点解析