自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 问答 (1)
  • 收藏
  • 关注

原创 代理与反射-捕获器 API

construct()捕获器会在 new 操作符中被调用。

2023-07-20 17:58:47 55

原创 代理与反射常用使用场景

{${${

2023-07-19 11:38:56 57

原创 js的代理与反射

在 JS 运行时,能够知道这个对象的成员,并能够调用这些成员,这种动态获取信息、动态调用对象方法的功能称为反射。反射 API 范围很广,可以用于代理中的捕获处理程序。大多的反射 API 方法在 Object 类型上都有对应的方法。相比 Object 直接操作,反射更适合用于细粒度的对象控制。

2023-07-19 11:37:42 105

原创 JS工作者概念

JavaScript 的业务代码在浏览器中是以单线程方式运行的,所以 JS 不可能像 Java 那样把工作委托给独立的线程去做,而且 JS 的 DOM API 也会因为多线程执行并发更改出现问题,所以 Java 这种线程模型也不适合 JavaSCript。浏览器每打开一个页面,其实就会分配一个虚拟的运行环境,这个环境有自己的内存、事件循环、DOM 等。每个页面都是一个独立的沙盒,不会干扰其他页面,而且他们是并行执行的。新推出的工作者,可以让浏览器在原始页面环境之外再分配一个完全独立的二级子环境。

2023-07-18 15:42:39 59

原创 组合式 API实践总结

组合式函数约定用驼峰命名法命名,并以“use”作为开头。

2023-07-18 14:53:36 80

原创 JavaScript的Event Loop理解

而 JS 中 Event Loop, 我的感觉就像 JS 中的一门内科, 我们平时只注意外科创伤,却忽视了内科问题往往容易莫名其妙的生病。了解 JS Event Loop 的原理,对setTimeoutPromise这种基础概念不再浮在表层,可以写出更可靠的代码,如果你是前端新人,不要总是因为这个问题挂在一面 :p。

2023-07-18 12:44:41 42

原创 设计模式之代理模式

代理和继承有足够多的相似之处,继承中,子类几乎可以人为是对父类的代理,子类可以重写父类的方法。但代理和继承还是有区别的:如果你没有采用new Proxy这种 API 创建代理,而是采用继承的方式实现,你会一下子继承这个类的所有方法,而做不到按需控制访问权限的灵活效果,所以代理比继承更加灵活。JS 的new Proxy对应了 Java 动态代理模式,一般认为动态代理比静态代理更强大。最后,还要重申那句话,代理模式理解与运用并不难,难就难在能否在恰当的场合想到它,双向绑定几乎是代理模式最好的例子。!!

2023-07-18 02:10:14 46

原创 JS内存管理机制

本质上讲, 内存泄露就是不再被需要的内存, 由于某种原因, 无法被释放.[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nebpqCV3-1689508465145)(https://raw.githubusercontent.com/dt-fe/weekly/master/assets/29/4.jpg)]即便在 JS 中, 我们很少去直接去做内存管理. 但是我们在写代码的时候, 也要有内存管理的意识, 谨慎的处理可能会造成内存泄露的场景.

2023-07-16 19:55:06 220

原创 前端架构的思考

我们从计算机与操作系统的架构设计出发,探讨了前端架构设计的必要性,并从分层与抽象两个角度分析了架构设计时的考量,希望你在架构设计遇到拿捏不定的问题时,可以向下借助计算机的架构设计获得一些灵感或支持。

2023-07-16 14:30:06 75

原创 并发模型-多线程

操作系统会为每个进程分配一定的内存地址空间,如图所示:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-w5zpQnxO-1689262873659)(…/images/node/02-03.svg)]32 位:最大内存地址为232^3232^22,这么多的字节数换算为 G 单位,即为 4G。(换算为 1G=1024MB=102464 位:最大内存地址为262^6264^44,这么多的字节数换算为 G 单位,数值过大,不便图示。

2023-07-13 23:41:59 28

原创 VUE3的KeepAlive组件

是一个内置组件,它的功能是在多个组件间动态切换时缓存被移除的组件实例。过特殊的默认情况下,一个组件实例在被替换掉后会被销毁。这会导致它丢失其中所有已变化的状态——当这个组件再一次被显示时,会创建一个只带有初始状态的新实例。在下面的例子中,你会看到两个有状态的组件——A 有一个计数器,而 B 有一个通过 v-model 同步 input 框输入内容的文字展示。尝试先更改一下任意一个组件的状态,然后切走,再切回来。在切回来之后,之前已更改的状态都被重置了。

2023-07-12 09:42:38 244

原创 vue的Suspense组件

在大型项目中,我们可能需要拆分应用为更小的块,并仅在需要时再从服务器加载相关组件。如你所见,defineAsyncComponent 方法接收一个返回 Promise 的加载函数。这个 Promise 的 resolve 回调方法应该在从服务器获得组件定义时调用。你也可以调用 reject(reason) 表明加载失败。ES 模块动态导入也会返回一个 Promise,所以多数情况下我们会将它和 defineAsyncComponent 搭配使用。

2023-07-12 09:41:45 204

原创 并发模型-多线程

Linux 环境下,进程地址空间相互独立,每个进程各自有不同的用户地址空间。任何一个进程的全局变量在另一个进程中都看不到,所以进程和进程之间不能相互访问,要交换数据必须通过内核,在内核中开辟一块缓冲区,进程 1 把数据从用户空间拷到内核缓冲区,进程 2 再从内核缓冲区把数据读走,内核提供的这种机制称为进程间通信(IPC,InterProcess Communication)。

2023-07-11 22:12:03 55

原创 程序的并发概念理解

在早期的操作系统中,各个任务的执行完全是串行的,只有在一个任务运行完成之后,另一个任务才会被执行,我们称之为单道程序。而现代操作系统引入了多道程序的并发概念:多道程序:当一个程序暂时不需要使用 CPU 的时候,系统会把该程序挂起或中断,此时其他程序可以使用 CPU,多个任务在操作系统的控制中实现了宏观上的并发。多道程序提升了计算机资源的利用率,但是也引起了多个任务对系统资源的抢夺,在开发上极为不便。

2023-07-10 14:09:19 413

原创 【无标题】

grade: number //年级。

2023-05-09 17:55:07 25

原创 JavaScript的继承机制

手写的JavaScript的继承,使用JavaScript的闭包原理。

2023-05-04 16:42:09 52 1

原创 三行代码搞定二叉树前中后序,层次遍历

代码】2021-06-02。

2022-07-16 03:23:54 194

原创 webpack学习

webpack的作用webpack的主要作用是编译前端的项目成为一个js文件,在编译中需要设置入口与出口并可以对一下配置进行解析loader配置这个是文件的类型配置,比如.vue文件,jpg文件,css文件等等p’lu’gins插件plugins插件是方便编译进行加载的,例如自动化编译刷新页面等常用的webpack插件是html-webpack-plugin,clean-webpack-plugin...

2021-05-22 18:04:45 58

原创 使用js的文档最pain优化dom操作

使用js的文档碎片优化dom操作js文档碎片使用api是domcument.createDocumentFragment()const frag=document.createDocumentFragment()const list =document.getElementbyid(‘list’)for(let i=0;i<10;i++){let e=document.createElementn(‘li’)frag.appendchild(item);}list.appendchil

2021-05-22 16:02:17 73 1

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除