【知识点详解】 1. **Array.prototype.reduce**: `reduce`方法用于对数组中的每个元素执行一个由您提供的reducer函数(升序执行),将其结果汇总为单个返回值。基本语法是`array.reduce(callback[, initialValue])`。回调函数接收四个参数:累积器(accumulator)、当前值(currentValue)、当前索引(currentIndex)和数组对象(array)。`initialValue`可选,作为第一次调用回调函数时的第一个参数。 2. **Promise.all**: `Promise.all`用于将多个Promise实例组合成一个Promise,当所有输入的Promise都变为fulfilled(成功)状态时,这个Promise变为fulfilled;如果有任何一个变为rejected(失败)状态,那么这个Promise也会变为rejected,其reason(失败原因)是第一个被reject的Promise的结果。 3. **网络七层模型**: 网络七层模型包括物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。HTTP、SMTP、WebSocket、TCP和IP分别属于: - HTTP:应用层协议,用于传输超文本。 - SMTP:应用层协议,用于电子邮件传输。 - WebSocket:应用层协议,提供双向通信,常用于实时交互应用。 - TCP:传输层协议,提供面向连接的、可靠的、基于字节流的数据传输服务。 - IP:网络层协议,负责在不同网络之间路由数据包。 4. **HTTP状态码**: - 200:表示请求成功,服务器已理解请求并成功处理。 - 304:表示资源未被修改,客户端通常会使用缓存的副本,而不是从服务器获取新的数据。 5. **HTTP版本的区别**: - HTTP/1.0:引入了持久连接,但默认关闭,每次请求都要建立新的连接。 - HTTP/1.1:默认开启持久连接,允许在一个连接上传输多个请求和响应。 - HTTP/2:引入了多路复用,可以同时处理多个请求和响应,减少了延迟。 - HTTP/3:基于QUIC协议,解决了TCP的头部压缩和延迟问题,提高了网络性能。 6. **TCP与UDP的区别**: - TCP是面向连接的,提供可靠的数据传输,确保数据按序到达且无丢失。 - UDP是无连接的,不保证数据的可靠性,但传输速度快,适合实时性要求高的应用。 7. **基于UDP的可靠传输**: 实现可靠传输通常需要自定义序列号、确认机制、重传策略以及流量控制等,以模拟TCP的功能。 8. **CSS样式**: - `padding-top`的百分比是相对于包含块的宽度计算。 - `z-index`和`position`配合创建层叠上下文。 - `var`和`let`的区别在于作用域,`var`在函数作用域,`let`在块级作用域。 - `opacity: 0`与`visibility: hidden`和`display: none`的区别在于是否占据空间和是否可见。 - `box-sizing`属性控制元素的总尺寸计算方式。 9. **数组操作**: - 扁平化、去重、排序:可以利用递归、`concat`、`Set`、`filter`、`sort`等方法实现。 - `Array.prototype.reduce`的实现:通过遍历数组,不断累加结果,最终形成单一的返回值。 10. **颜色生成**: - 生成随机HEX颜色:通过随机选择16进制数字或字母组合生成。 - 生成随机RGB颜色:为红、绿、蓝各生成0-255之间的随机数。 - RGB转HEX:将RGB值转换为16进制字符串。 11. **字符串替换**: - 根据给定的对象属性,替换字符串中特定格式的占位符。 以上知识点涵盖了前端开发中的一些基础概念、网络协议、JavaScript特性以及面试中常见的编程题目,对于准备前端面试和提高技术能力都有很好的参考价值。
剩余6页未读,继续阅读
- 粉丝: 25
- 资源: 293
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助