十二、网络相关面试题汇总

(一)简述 TCP 连接的过程(淘系)

TCP 协议通过三次握手建立可靠的点对点连接,具体过程是:

首先服务器进入监听状态,然后即可处理连接

第一次握手:建立连接时,客户端发送 syn 包到服务器,并进入 SYN_SENT 状态,等待服务器确认。在发送的包中还会包含一个初始序列号 seq。此次握手的含义是客户端希望与服务器建立连接。

第二次握手:服务器收到 syn 包,然后回应给客户端一个 SYN+ACK 包,此时服务器进入 SYN_RCVD 状态。此次握手的含义是服务端回应客户端,表示已收到并同意客户端的连接请求。


郁子大约 33 分钟笔记渡一教育笔面试题甄选袁进
十三、工程化相关面试题讲解

(一)CMJ 和 ESM

1.CommonJS

1)关键词

  • 社区标准
  • 使用函数实现
  • 仅 node 环境支持
  • 动态依赖(需要代码运行后才能确定依赖)
  • 动态依赖是 同步执行

2)原理

// require函数的伪代码
function require(path) {
  if (该模块有缓存吗) {
    return 缓存结果;
  }
  function _run(exports, require, module, __filename, __dirname) {
    // 模块代码会放到这里
  }

  var module = {
    exports: {},
  };

  _run.call(module.exports, module.exports, require, module, 模块路径, 模块所在目录);

  // 把 module.exports 加入到缓存;
  return module.exports;
}

郁子大约 14 分钟笔记渡一教育笔面试题甄选袁进
十四、工程化相关面试题汇总

(一)下面的模块导出了什么结果?

exports.a = "a";
module.exports.b = "b";
this.c = "c";
module.exports = {
  d: "d",
};

/* 
{ 
  d: 'd'
}
*/

郁子大约 29 分钟笔记渡一教育笔面试题甄选袁进
十五、Vue相关面试题讲解

(一)组件通信总结

面试题:vue 组件之间有哪些通信方式?

1.父子组件通信

绝大部分 vue 本身提供的通信方式,都是父子组件通信

  • prop
  • event
  • style & class
  • attribute
  • native 修饰符
  • $listeners
  • v-model
  • sync 修饰符
  • $parent & $children
  • $slots & $scopedSlots
  • ref

郁子大约 32 分钟笔记渡一教育笔面试题甄选袁进
十一、网络相关面试题讲解

(一)五层网络模型

1.分层的意义

  • 当遇到一个复杂问题的时候,可以使用分层的思想把问题简单化

如:有半杯 82 年的可乐,想分享给朋友王富贵,但已经 10 年没有联系了。要完成这件事,可能要考虑:

  • 我用什么装可乐?

    可能的方案:塑料瓶、玻璃瓶、煤气罐

  • 怎么保证可乐始终处于低温?

    可能的方案:保温杯、小冰箱、冰盒

  • 如何保证可乐不被运输的人偷喝?

    可能的方案:封条、在上面写「毒药」

  • 如何获取王富贵的地址?

    可能的方案:报案失踪、联系私人侦探、联系物流公司的朋友

  • 如何运输?

    可能的方案:自行车、汽车、火车、高铁、飞机、火箭

这就形成了一个分层结构


郁子大约 90 分钟笔记渡一教育笔面试题甄选袁进
六、TypeScript进阶

(一)深入理解类和接口

1.面向对象概述

1)意义

  • TS 为前端面向对象开发带来了契机
    • JS 语言没有类型检查,如果使用面向对象的方式开发,会产生大量的接口,而大量的接口会导致调用复杂度剧增
    • 这种复杂度必须通过严格的类型检查来避免错误,尽管可以使用注释或文档或记忆力,但是它们没有强约束力
    • TS 带来了完整的类型系统,因此开发复杂程序时,无论接口数量有多少,都可以获得完整的类型检查,并且这种检查是据有强约束力的
  • 面向对象中有许多非常成熟的模式,能处理复杂问题
    • 在过去的很多年中,在大型应用或复杂领域,面向对象已经积累了非常多的经验

郁子大约 44 分钟笔记渡一教育强化课袁进
二、Node

(一)Node 核心

1.Node 概述

Node 官网


Node 民间中文网

  • Node 是一个 JS 的运行环境

约定俗成

  • JavaScript 指运行在浏览器环境下的 JS
  • NodeJS 指运行在 Node 环境下的 JS

郁子大约 132 分钟笔记渡一教育强化课袁进
二、Vue从入门到实战

(一)前端框架的由来

Vue 官网:https://cn.vuejs.org/

1.服务端渲染

2.前后端分离

3.单页应用

4.vue 框架

5.前端框架变迁

1)过去的前端开发方式

  • 早期前端盛行库,最出名的就是 JQuery
  • JQuery 诞生于 2006 年 1 月,最早的口号是 “Write less, do more”
  • JQuery 特点
    • 简单的选择器和链式操作
    • 跨浏览器兼容性
    • 强大的动画
    • 简单的 Ajax 支持
    • 强大的插件系统, 如 Swiper.js 等

郁子大约 67 分钟笔记渡一教育中枢课袁进
一、工程化

(一)模块化

1.为什么需要模块化

  • 当前端工程到达一定规模后,就会出现以下问题
    • 全局变量污染
    • 依赖混乱
    • 共同导致了 代码文件难以细分
  • 模块化就是为了解决上面两个问题出现的
  • 可以把臃肿的代码细分到各个小文件中
    • 便于后期维护管理

2.前端模块化标准

1)CommonJS

  • 简称 CMJ
  • 是一个 社区 规范
  • 出现时间较早,目前仅 node 环境支持

郁子大约 23 分钟笔记渡一教育中枢课袁进
2