- 博客(60)
- 收藏
- 关注
原创 面试题:JS 中怎么实现深克隆和浅克隆
克隆(拷贝)就是创建一份数据的副本,其分为深克隆和浅克隆两种实现方式。对于原始类型的值而言,深克隆和浅克隆没有任何区别,因此我们关于克隆的研究对象是对象类型。语法:浅克隆的实现:2. array.slice(数组)语法:浅克隆的实现:3. array.concat(数组)语法:浅克隆的实现:4. Array.from(数组)语法:浅克隆的实现:5. 展开运算符(对象或数组)我们也可以使用展开运算符实现浅克隆,而且对数组和对象都生效!!!浅克隆的实现(对象):
2024-06-06 00:16:14 995
原创 面试题:说说你对 JS 中 this 指向的了解
JS 的代码执行环境分为,可以通过use strict打开严格模式,此时 JS 在语法检查上会更加严格。要讨论 JS 中的 this 指向问题,也要分为严格模式和非严格模式进行讨论。这里先讨论非严格模式下的 this 指向,然后再讨论严格模式下的不同之处,未谈到的地方默认与严格模式相同。
2024-06-04 16:17:29 623 1
原创 面试题:讲讲你对闭包的理解?有什么优缺点
从 JS的角度出发,函数外部无法访问到函数中的变量,但函数内部可以访问到其外部的变量。所谓闭包(closure),是一种的一种方式。通常通过的方式实现闭包,这个新函数中可以访问到返回它的函数中的所有执行上下文。:创建闭包时所在的作用域对于以下示例,A 函数返回了 B 函数,此时 B 函数中可以访问到 A 函数中的所有执行上下文(变量等),将返回的 B 函数赋给一个变量,此时在 A 函数外也可以访问到 A 函数中定义的变量(包括为了得到 B 函数传给 A 函数的参数)。${通过以上示例,我们也可以认为。
2024-06-04 15:04:10 810
原创 面试题:谈谈你对 JS 内存泄漏与内存溢出的理解
如果 JS 变量存储着对 DOM 元素的引用,当对应的 DOM 元素从 document 中移除后,对应变量仍存在着对应的引用,而不是被回收。闭包变量引用闭包,闭包引用其词法作用域中的变量。只要闭包变量不为 null,其相关的引用全部无法被垃圾回收。,从而导致内存占用逐渐增加,最终可能会耗尽所有可用内存。声明的变量,其在整个应用程序的生命周期中始终存在。(Memory Overflow)指的是。(Memory Leak)指的是。内存泄漏即不想用的内存没被释放。全局变量指的是未使用。
2024-06-04 15:03:10 447
原创 面试题:谈谈你对 JS 原型链的理解
JavaScript 是一种的语言,即,对象通过其原型对象继承方法和属性。原型对象也有其原型对象,依次类推,就构成了。当对象访问一个属性或方法后,首先需要在其本身上查找,查找不到才去其原型对象中查找,查找不到再去其原型对象的原型对象中查找,···,一直到顶层原型,即 Object 的原型对象身上去,Object 的原型对象的原型对象则为 null。这就是的原理。原型对象分为和。的原型对象是显式原型对象,通过.prototype的方式可以访问到其原型对象。的原型对象是隐式原型对象,通过或。
2024-06-04 15:00:41 924
原创 面试题:说说浏览器的缓存机制
强制缓存优先于协商缓存。强制缓存生效则直接使用缓存数据,否则进行协商缓存。协商缓存由服务器决定是否使用缓存中的数据。协商缓存生效则服务器返回 304,使用缓存数据,否则重新请求结果,再存入浏览器缓存中。
2024-06-04 00:37:44 1109
原创 面试题:说一下 http 报文都有哪些东西?
HTTP 是(实际上除了 HTML,可以传输任何类型的文件,如视频、音频、文本等)的,是一组用于的。HTTP 位于,应用程序可以在其中交换数据。HTTP 是协议族的一部分。HTTPS 是另一种传输协议,这里的 S 表示(Secure)。其与 HTTP 的区别在于,。浏览器和服务器之间通过 HTTP 报文进行。浏览器向服务器发送,服务器返回给浏览器。解释如下。
2024-06-03 20:19:59 674
原创 面试题:谈谈你对观察者和订阅发布的理解
小王想要购买一本尚未出版的杂志,他向出版社预订该杂志并提供联系方式,一旦该杂志出版,出版社就会根据小王预留的联系方式通知他可以来购买了。这个简单的场景就是一个简单的观察者模式,可以将小王扩充到任意数量的消费者,一旦某个杂志出版了,出版社就可以根据维护的订阅该杂志的消费者列表进行逐一通知。:观察者模式定义了一种,使得当一个时,所有。观察者模式中,观察者和被观察者的关系是通过被观察者建立的。updateupdateupdate观察者接口被观察者接口观察者实现/消费者类的定义${this${
2024-06-03 01:35:34 434
原创 面试题:计算机网络中的七四五是什么?
应用层包含若干协议,文件传输协议(FTP)、安全壳协议(SSH)、简单邮件传输协议(SMTP)、因特网消息访问协议(IMAP)、域名服务(DNS)、超文本传输协议(HTTP)OSI 将计算机网络分为了七层,每一层抽象底层的内容,并遵守一定的规则。基于 OSI 模型,网络中的节点(物理设备)得以进行通信。(MAC)(负责分配唯一标识网络设备的硬件标识号 —— MAC 地址)、:根据物理设备的发送、接收比特的形式,分为。(LLC)(处理帧的寻址与流量控制)。(可以收也可以发,但不能同时进行)、
2024-05-31 11:46:05 711
原创 面试题:你怎么理解 HTML 语义化?语义化有什么优点?
(语义化是什么)HTML 语义化要求开发者,而不是像divspan等无意义的标签,这里的意义就是语义。(语义化的作用)通过使用语义化标签,开发者。(语义化举例)如header常用于定义nav常用于定义article常用于定义一篇section常用于定义aside常用于定义footer常用于定义main常用于定义等等。
2024-05-31 01:27:40 1066
原创 script 标签中 defer 和 async 属性的区别
defer 脚本的执行不会阻塞解析,但 async 脚本可能会阻塞 HTML 解析。标签时会阻塞 HTML 解析,直到脚本加载和执行完毕后才继续解析。实现,不会阻塞HTML 解析;脚本的执行是同步的,会占用。都可以提高页面的加载性能,主要区别整理如下。属性来控制外部 JavaScript 脚本。后,脚本的记载是异步的,由。
2024-05-29 21:00:41 721
原创 style 标签写在 body 前和 body 后有什么区别?
浏览器在执行 JavaScript 时会阻塞页面渲染,直到脚本执行完毕。因此将脚本放在底部可以优先渲染页面内容。
2024-05-29 19:41:17 544
原创 display: none 和 visibility: hidden 的共性与区别
代码效果演示(对 Parent 元素上样式)都是用于设置元素可见性的样式。
2024-05-29 17:22:06 356
原创 width: auto 和 width: 100% 的区别
CSS 中的width属性用于设置。默认情况下,width设置的是(content area)的宽度。如果元素有样式,则width设置的是(border area)的宽度。width取值为百分比(percentage),表示当前元素的宽度为其(containing block)的宽度的百分比。通常情况下(即对于非定位元素而言),元素的包含块为该元素。width取值为auto,表示浏览器根据实际情况会自动计算出一个宽度。
2024-05-26 17:09:52 1010
原创 详解 Cookies 和 WebStorage
Cookies 有一系列别名,如 HTTP Cookies、Internet Cookies、Browser Cookies、Web Cookies,这些名词指向的都是同一个含义。Cookies 是服务器发送给浏览器的少量数据。同时,服务器端存储着该数据以及对应的用户 ID。通过Cookie请求头,每次浏览器发送 HTTP 请求时, Cookies 都会被自动发送给服务端。Cookies 是以键值对(key-value)形式存储的数据。我们也可以设置 Cookies 的。
2024-05-26 16:20:38 705
转载 【前端面经】async 和 await 是做什么的?
是ES2017(ES8)中引入的语法糖,用于处理JavaScript中的异步操作。成为可能,极大地提高了代码的可读性和可维护性。
2024-05-23 18:59:48 106
转载 【前端面经】手写一个防抖、节流
特别是在处理频繁触发的事件时,如窗口调整大小、滚动、输入框输入等。这些技术可以提高性能和用户体验,避免不必要的函数调用。,如滚动、鼠标移动等。在这些场景中,函数应该在一定时间间隔内多次执行,但不会频繁地触发。防抖(Debounce)和节流(Throttle)是两种常见的。,不管这段时间内调用了多少次。(如搜索框实时查询),节流是一种确保函数在。
2024-05-23 18:24:06 48
转载 【前端面经】JS 中的事件循环机制是什么?
调用栈是一个后进先出(LIFO, Last-In-First-Out)的栈结构,用于管理函数调用和执行上下文。当 JavaScript 引擎执行代码时,会创建执行上下文并将其推入调用栈。函数调用完成后,对应的执行上下文会从调用栈中弹出。
2024-05-23 17:57:33 85
原创 【前端面经】JS 中 var、let、const 变量声明方式及其区别?
但是对于复杂数据类型(如对象),可以修改其中的内容。:所谓暂时性死区,指的是在。
2024-05-23 17:45:19 383
转载 【前端面经】CSS 定位有哪些?
文档流是指网页元素在没有任何定位或浮动的情况下,按照 HTML 结构依次排列的方式。默认情况下,块级元素会垂直排列,占据其父容器的全部宽度,而行内元素则会水平排列,直到一行放不下才会换行。
2024-05-23 17:34:00 28
原创 【前端面经】BFC
官方解释通俗理解:BFC(块级格式化上下文)是一种在布局上具有特定效果的渲染区域。创建/开启 BFC 意味着元素被激活了这种特殊的布局效果,从而使其内部的元素布局和浮动元素的交互方式与默认情况有所不同。
2024-05-23 17:28:48 1025
转载 【前端面经】跨域与同源策略
是指在浏览器中,JavaScript 发起的 HTTP 请求的。只有满足以上所有条件的情况下,浏览器才允许请求资源。:支持多种 HTTP 请求方法,安全性较高。会默认阻止跨域请求,这种行为称为。
2024-05-23 17:19:56 45
转载 【前端面经】http 的请求过程
FIN-WAIT-1:客户端发送 FIN 报文后进入此状态。FIN-WAIT-2:客户端收到服务器的 ACK 报文后进入此状态。CLOSE-WAIT:服务器收到客户端的 FIN 报文后进入此状态。LAST-ACK:服务器发送 FIN 报文后进入此状态。TIME-WAIT:客户端收到服务器的 FIN 报文后进入此状态,并等待一段时间以确保 ACK 报文被接收。CLOSED:双方在各自的最后状态进入此状态,完成连接关闭。
2024-05-23 17:13:31 188
原创 JavaScript 数组方法总结
创建数组访问和修改数组(长度 & 元素)添加和删除元素数组遍历元素查找过滤和映射归并和缩减数组的连接数组的扁平化数组的排序数组的反转数组的复制数组的测试数组的填充。
2024-05-23 11:26:03 996
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人