- 博客(18)
- 收藏
- 关注
原创 JavaScript 中的 7 个新 Set 方法:`union()`、`intersection()`,以及其他 5 个
我们坦诚一点:你可能对Set并不怎么关心!至少直到现在……Set从 ES6 就已经存在了,但通常它们只是用来确保列表中没有重复项。然而,随着这7个即将推出的内置Set方法,我们可能会发现自己更加频繁地使用它们。
2024-08-22 09:31:43
272
1
原创 ES10中7个最具变革性的JavaScript特性
ES10为JavaScript标志着一个重要的飞跃,引入了几个对现代开发至关重要的特性。使用它们来编写更清晰、更简洁、更具表现力和清晰度的代码。
2024-08-16 15:52:33
360
原创 A/B机器正常连接后, B机器突然重启,后A是什么状况
此时能够改变现状的只有A,A主动发任何的消息给B,B察觉这次通信是异常的,会要求重置连接,因此发送RST给A,A收到之后会重置自己该tcp连接的各种时间。那么,当某一方突然挂机,另一方是无法知道对方挂机的,因为对方又没给自己FIN断开,自己如果没有主动联系对方,那么这个连接就一直保持,直到操作系统的那个时间兜底来临。所以在B挂机重启的一端时间内,A还一位这个连接保持,所以它会一直存在,知道B重启自然进入到listen状态,这个时候,B是不知道自己和A之前还有连接的。
2024-06-04 16:16:20
301
原创 手写new操作
2.新对象obj的原型指向Constructor.prototype(2,3两步可以通过Object.createConstructor.prototype)3.执行构造函数函数体的内容。1创建 新对象obj。
2024-04-09 16:42:16
94
原创 Vue 二次封装组件的技巧及要点
在开发 Vue 项目中我们一般使用第三方 UI 组件库进行开发,如, 但是这些组件库提供的组件并不一定满足我们的需求,这时我们可以通过对组件库的组件进行二次封装,来满足我们特殊的需求。对于封装组件有一个大原则就是我们应该尽量保持原有组件的接口,除了我们需要封装的功能外,我们不应该改变原有组件的接口,即保持原有组件提供的接口(属性、方法、事件、插槽)不变。
2024-03-23 21:07:25
2430
原创 webpack总结
对此你可以通过插件的filename属性,告诉插件输出的 CSS 文件名称是通过[name]_[contenthash:8].css字符串模版生成的,里面的[name]代表文件名称,[contenthash:8]代表根据文件内容算出的8位 hash 值, 还有很多配置选项可以在ExtractTextPlugin的主页上查到。浏览器在用户访问页面的时候,为了加快加载速度,会对用户访问的静态资源进行存储,但是每一次代码升级或者更新,都需要浏览器去下载新的代码,最方便和最简单的更新方式就是引入新的文件名称。
2024-03-13 20:21:17
398
原创 15.vue2与vue3双向数据绑定的区别
vue2:使用Object.defineProperty对象以及对象属性的劫持+发布订阅模式,只要数据发生变化直接通知变化 并驱动视图更新。上述代码表示当访问proxy的属性时,进行拦截判断,该属性是否是目标对象的属性,如果是那么就将其值返回出来,否则就返回0。Proxy 对象用于定义基本操作的自定义行为(如属性查找、赋值、枚举、函数调用等)vue3:Vue3.0中的响应式采用了ES6中的Proxy方法。当对proxy上的属性进行重写时,将重写的该属性赋值为666。
2024-03-11 17:04:06
157
1
原创 vue面试题-持续更新
父beforeCreated ->父created ->父beforeMounted ->子beforeCreated ->子created ->子beforeMounted ->子mounted -> 父mounted。父beforeDestroy->子beforeDestroy->子destroyed->父destroyed。在这个阶段,vue实例的数据对象data已经有了,但el还没有初始化。父beforeUpdate->子beforeUpdate->子updated->父updated。
2024-03-10 14:47:21
476
1
原创 前端基本面试概况
sessionStorage顾名思义,是在当前会话下有效,引入了一个“浏览器窗口的概念”,sessionStorage是在同源的同窗口中,始终存在的数据,只要浏览器不关闭,即使是刷新或者进入同源的另一个页面,数据仍在。第一个:串行的文件传输。现代浏览器大多都是通过队列机制来批量更新布局,浏览器会把修改操作放在队列中,至少一个浏览器刷新(即16.6ms)才会清空队列,但当你获取布局信息的时候,队列中可能有会影响这些属性或方法返回值的操作,即使没有,浏览器也会强制清空队列,触发回流与重绘来确保返回正确的值。
2024-03-08 17:19:19
1297
1
原创 实现深拷贝的几种方式
但是属性类型为undefined、null、Date、RegExp、function时,使用该方式进行深拷贝会出问题。浅拷贝:相反不在堆内存中重新开辟空间,仅仅复制栈内存中的引用地址,本质上依然指向的同一块存储空间。console.log(newObj.numberParams) // 输出1。这种方式为项目中最安全且最常用的深拷贝方法俗称万能拷贝,适合于各种数据结构。obj.numberParams = 100 // 更改原对象的属性。深拷贝:在堆内存中开辟一个存储空间来存储一个一模一样的克隆对象。
2024-03-07 13:52:11
375
原创 原生JS手写实现call方法
在本篇文章中,我们手写实现了JavaScript中的 call 方法,并讨论了如何使用它来调用函数。假设我们有一个函数 foo,并且我们想要使用 call 方法来调用它,同时将 this 绑定到一个新的上下文对象 context 上,同时还要传入参数 arg1, arg2, ...。需要注意的是,虽然手写实现 call 方法可以帮助我们更好地理解其底层实现原理,但在实际开发中,建议使用JavaScript内置的 call 方法,因为它已经被广泛测试和优化,并具有更好的性能和可靠性。// 输出 'Toms'
2024-03-07 10:53:48
231
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人