模拟考试中的前端2025-09-18

  • HTML(HyperText Markup Language,超文本标记语言)不是一种编程语言,而是一种标记语言(Markup Language)。
  • 是的,CSS 的 float 属性最初的设计目的是实现文字环绕图片的排版效果,

📋 HTTP请求方法总览

方法 描述 幂等性 安全性
GET 请求获取指定资源 ✅ 是 ✅ 是
POST 向指定资源提交数据进行处理 ❌ 否 ❌ 否
PUT 替换指定资源的所有当前表示 ✅ 是 ❌ 否
PATCH 对资源进行部分修改 ❌ 否 ❌ 否
DELETE 删除指定资源 ✅ 是 ❌ 否
HEAD 获取资源的头部信息 ✅ 是 ✅ 是
OPTIONS 获取服务器支持的HTTP方法 ✅ 是 ✅ 是
TRACE 回显服务器收到的请求 ✅ 是 ✅ 是
CONNECT 建立隧道连接 ✅ 是 ❌ 否

VUE2 响应式

原因:Vue 2 无法检测到通过数组索引直接设置值的变化。
Vue 2 使用 Object.defineProperty 来劫持数组的方法,但无法劫持数组索引操作。
Vue 2 无法检测到对象新属性的添加。
由于 Vue 2 在初始化时对已有属性进行响应式处理,新增的属性没有 getter/setter。

🎯 Vue 2 响应式原理要点

数组的响应式限制

Vue 2 无法检测以下数组变动:

  • 通过索引直接设置项:items[index] = newValue
  • 修改数组长度:items.length = newLength

对象的响应式限制

Vue 2 无法检测以下对象变动:

  • 添加新属性:obj.newProperty = value
  • 删除属性:delete obj.property

解决方案

  • 使用 Vue.set()this.$set()
  • 使用数组的变异方法
  • 对于对象,使用新对象替换旧对象

响应式的操作

B. this.items.push(newItem)

原因:Vue 2 重写了数组的变异方法(push、pop、shift、unshift、splice、sort、reverse),这些方法能够触发视图更新。

n = 1000 个元素时:

冒泡排序:    O(n²) = 1,000,000 次操作
快速排序:    O(n log n) ≈ 10,000 次操作
归并排序:    O(n log n) ≈ 10,000 次操作
二分查找:    O(log n) ≈ 10 次操作

A. 混合使用对称和非对称加密

正确原因:HTTPS 确实采用了混合加密机制:

  • 非对称加密:用于密钥交换和身份验证(使用公钥/私钥)
  • 对称加密:用于实际数据传输(使用会话密钥)
    这种组合既保证了安全性又提高了性能。

B. 端口号是443

正确原因:HTTPS 的标准端口确实是 443,而 HTTP 使用的是 80 端口。

D. SSL证书用于验证服务器身份

正确原因:SSL/TLS 证书由可信的证书颁发机构(CA)签发,用于:

  • 验证服务器的真实身份
  • 建立客户端对服务器的信任
  • 防止域名欺骗和钓鱼攻击

C. 可以完全防止中间人攻击

错误原因:虽然 HTTPS 大大增强了安全性,但不能完全防止所有中间人攻击:

  • 证书伪造或被盗

  • 客户端忽略证书警告

  • 某些降级攻击

  • 恶意证书颁发机构
    HTTPS 显著提高了攻击难度,但不是绝对免疫。

  • Vue.js 的核心库主要关注视图层

  • vue中用于响应式更新视图的核心功能是 A?A虚拟DOM B数据双向绑定C 组件系统

📊 主要区别总结

特性 var let
作用域 函数作用域 块级作用域
变量提升 提升且初始化为undefined 提升但不初始化(暂时性死区)
重复声明 允许 不允许
全局声明 成为全局对象的属性 不在全局对象上
循环中的表现 有问题(共享变量) 正常(每次迭代新变量)

✅ 总结

情景 推荐使用
需要改变的变量 let
不需要改变的常量 const
旧代码维护 var(仅限遗留系统)
新项目开发 避免使用 var

主要建议:

  1. 默认使用 const
  2. 需要重新赋值时使用 let
  3. 避免使用 var(除非维护旧代码)

单选题 vue3的 A.逻辑关注点分离 B.更好的typescript支持 C.更简单的组件通信 D.更小的打包体积

一、三次握手的核心流程

  1. 第一次握手(SYN)

    • 客户端服务器:发送 SYN=1(同步序列号)、随机生成 seq=x(初始序列号)。
    • 作用:客户端告知服务器自己的初始序列号,并请求建立连接。
    • 状态变化:客户端进入 SYN_SENT 状态,服务器进入 SYN_RECV 状态。
  2. 第二次握手(SYN + ACK)

    • 服务器客户端:回复 SYN=1ACK=1(确认号)、ack=x+1(确认客户端的序列号)、随机生成 seq=y(服务器的初始序列号)。
    • 作用:服务器确认客户端的请求,并告知自己的初始序列号。
    • 状态变化:客户端和服务器均保持 SYN_RECVESTABLISHED 过渡状态。
  3. 第三次握手(ACK)

    • 客户端服务器:发送 ACK=1ack=y+1(确认服务器的序列号)、seq=x+1(客户端序列号递增)。
    • 作用:客户端确认服务器的响应,连接正式建立。
    • 状态变化:双方进入 ESTABLISHED 状态,可开始传输数据。

三、关键字段解析

字段 作用
SYN 同步序列号,表示请求建立连接(仅第一次和第二次握手有效)。
ACK 确认号,表示响应已收到(第二次和第三次握手必须为 1)。
seq 发送方的序列号,用于数据排序和去重。
ack 确认号,值为 对方序列号 + 1,表示“已收到对方序列号为 ack-1 的数据”。

总结

  • 三次握手是 TCP 可靠性的基石,通过同步序列号和确认机制,确保双方具备双向通信能力。
  • 核心目的:防止历史连接干扰、同步初始序列号、合理分配资源。
  • 对比:与 UDP 的无连接特性形成鲜明对比,TCP 更适合需要可靠传输的场景。
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容