-
HTTPS 一次会发送几次请求?
HTTPS 一次会发送至少 2 次请求:
-
第一次是客户端发送 HTTP 请求,服务器返回 HTTP 状态码 301 或 302,要求客户端访问 HTTPS。
-
第二次是客户端根据重定向请求,发送 HTTPS 请求,并完成 SSL/TLS 握手等流程。
-
-
一个搜索框,多个页面共用,但每个页面搜索不同内容,如何封装组件?
可以创建一个通用的搜索组件,通过 props 传递不同的搜索参数。组件内部维护搜索关键词状态,并提供搜索事件回调。每个页面使用该组件时,传入对应的搜索参数即可。
-
说一说常用的 Linux 命令?
-
ls: 列出当前目录下的文件和目录 -
cd: 切换目录 -
mkdir: 创建目录 -
rm: 删除文件或目录 -
cat: 查看文件内容 -
grep: 搜索文件中的内容 -
top: 查看系统进程 -
ssh: 远程登录到其他主机 -
sudo: 以管理员权限执行命令
-
-
平时工作中怎样部署?
部署方式可能包括:
-
手动部署:远程登录服务器,拉取代码,重启服务
-
自动化部署:利用 CI/CD 工具,如Jenkins、GitHub Actions等,实现代码合并、构建、测试、发布等一键式部署
-
容器部署:将应用打包成Docker镜像,部署到容器平台如Kubernetes
-
-
前端的 Proxy 代理,其底层源码是如何实现的呢?
Proxy 代理的底层实现依赖于 ES6 中引入的 Proxy 对象。Proxy 对象可以拦截并自定义对目标对象的基本操作,如属性访问、函数调用等。前端 Proxy 代理利用这一特性,实现对请求的拦截和转发。
-
Node.js 用过吗?底层源码 C++ 看过吗?V8 引擎的 OpenSSL 看过吗?V8 是怎么解析 JS 的?浏览器的内核是什么?
-
有使用过 Node.js,它是基于 Chrome 的 V8 引擎构建的 JavaScript 运行时环境。
-
对 Node.js 的底层 C++ 源码和 V8 引擎的实现细节不太了解。
-
对 V8 引擎如何解析 JavaScript 代码的机制有初步的了解,主要包括词法分析、语法分析、解释执行等步骤。
-
浏览器的内核根据不同的浏览器而有所不同,如 Chrome 使用 Blink,Firefox 使用 Gecko,Safari 使用 WebKit 等。
-
-
AMD、CMD、UMD、CommonJS 了解吗?
-
AMD(Asynchronous Module Definition)是一种异步加载模块的规范,代表作是 RequireJS。
-
CMD(Common Module Definition)是另一种模块定义规范,代表作是 SeaJS。
-
UMD(Universal Module Definition)是 AMD 和 CommonJS 的结合,兼容两种规范。
-
CommonJS 是服务器端 Node.js 使用的模块系统,采用同步加载模块。
这些模块化规范都是为了解决 JavaScript 缺乏模块化的问题。
-
-
做过云函数吗?
有做过一些小型的云函数项目,主要用于实现简单的后端逻辑,如处理 HTTP 请求、操作数据库等。云函数可以让前端开发者无需搭建服务器就能实现服务端功能,降低了开发成本和运维复杂度。