前端基础 10
-
【每日一面】HTTP 和 HTTPS 的区别
基础问答 问:HTTP 和 HTTPS 有什么区别? 答:1. HTTPS 是 HTTP + SSL/TLS 协议的一个组合,使用 SSL/TLS 加密,相对更安全。2. 端口使用不同,HTTP 使用 80 端口,HTTPS 使用 443 端口。3. HTTPS 由于加密设计需要多次握手,HTTP
-
深度解析 JavaScript 作用域与作用域链
概述 作用域(Scope)与作用域链(Scope Chain)是 JavaScript 的核心概念,它们决定了变量的可访问范围、生命周期,以及代码运行时变量查找的规则,理解这两个概念,可以回答我们 “变量在这里为什么能访问”,“为什么这里访问到的变量值是 undefined” 等诸多疑问,同时还能帮
-
【每日一面】如何解决内存泄漏
基础问答 问:有没有遇到过内存泄漏?怎么排查处理的 答:前端页面上出现内存泄露,使用 Chrome devtools -> memory 工具排查,选择时间轴分配(Allocations on timeline)功能后开始录制操作,在页面上进行相关组件的操作,停止录制后,查看内存曲线,重点关注内存曲
-
【每日一面】BOM 是什么
BOM 是什么 基础问答 问:了解过 BOM 吗?他和 DOM 有什么差异? 基础问答 问:了解过 BOM 吗?它和 DOM 有什么差异? 答:BOM 是浏览器对象,指的是如 window ,location ,history ,screen 等由浏览器提供的操作对象,是提供给开发人员操作浏览器的部
-
【每日一面】实现一个深拷贝函数
基础问答 问:知道浅拷贝和深拷贝吗?为什么要用深拷贝? 答:拷贝,可以认为是赋值,对于 JavaScript 中的基础类型,如 string, number, null, boolean, undefined, symbol 等,在赋值给一个变量的时候,是直接拷贝值给变量,而对于引用类型,如 obj
-
深入浅出 ES Module
概述 在 JavaScript 模块化发展历程中,为解决全局变量污染,代码依赖管理等问题,先后出现了 CommonJS(CJS)、AMD、CMD、UMD、ES6 Module(ESM)五大主流方案。不同方案因设计目标、运行环境(浏览器 / Node)的差异,形成了各自的语法特性与生态定位。 其中ES
-
【每日一面】对 Promise.race 的理解
基础问答 问:有使用过 Promise.race 吗,说说他的作用。 答:Promise.race 接收一个 Promise 数组(或者一个具有迭代器的对象)作为参数,返回一个新的Promise,这个新的 Promise 结果是数组中第一个状态变更的Promise对象,无所谓这个状态是否是成功(fu
-
【每日一面】手写防抖函数
基础问答 问:手写一个防抖函数 答: /** * 基础版防抖函数(非立即执行) * @param {Function} func - 需要防抖的目标函数 * @param {number} delay - 等待时间(毫秒) * @returns {Function} - 防抖后的函数 */
-
浅浅的聊一下 WebSocket
第一次看到 ws:// 和 wss:// 时候,感觉好高级啊,还有这种协议。 Websocket 历史 WebSocket 是在2008年6月诞生的1。经由 IEFT 标准化后,2009年 chrome 4 第一个提供了该标准支持,并默认启用。于2011年由 IEFT 标准化为 RFC 6455。
-
《你不知道的JavaScript》笔记(一)
用了一个星期把《你不知道的JavaScript》看完了,但是留下了很多疑惑,于是又带着这些疑惑回头看JavaScript的内容,略有所获。 第二遍阅读这本书,希望自己能够有更为深刻的理解。 词法作用域 ……如果是 **有状态** 的解析过程,还会赋予单词语义…… 这本书是以编译原理的部份内容结合 J