wyzqhhhh
码龄3年
关注
提问 私信
  • 博客:30,562
    30,562
    总访问量
  • 47
    原创
  • 280,931
    排名
  • 333
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:浙江省
  • 加入CSDN时间: 2022-01-10
博客简介:

wyzqhhhh的博客

查看详细资料
  • 原力等级
    当前等级
    3
    当前总分
    363
    当月
    1
个人成就
  • 获得384次点赞
  • 内容获得6次评论
  • 获得506次收藏
创作历程
  • 27篇
    2024年
  • 20篇
    2023年
成就勋章
创作活动更多

2024 博客之星年度评选报名已开启

博主的专属年度盛宴,一年仅有一次!MAC mini、大疆无人机、华为手表等精美奖品等你来拿!

去参加
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

输入url到页面显示过程的优化

操作系统能够进行运算调度的最小单位。:操作系统最核心的就是进程,他是操作系统进行资源分配和调度的基本单位。一个进程就是一个程序的运行实例。启动一个程序的时候,操作系统会为该程序创建一块内存,用来存放代码、运行中的数据和一个执行任务的主线程,把这样的一个运行环境叫进程。线程是依附于进程的,而进程中使用多线程并行处理能提升运算效率。现代浏览器为多进程架构,打开一个页面,浏览器至少会打开四个进程 -- 浏览器主进程、渲染进程、GPU进程、网络进程。转换为用户可以与之交互的网页,
原创
发布博客 2024.04.03 ·
840 阅读 ·
9 点赞 ·
0 评论 ·
19 收藏

for of与for in 贱人

for in遍历时候:对象就是key,数组就是下标,字符串就是引用地址。for ... in 循环返回的值都是数据结构的 键值名。遍历对象返回的对象的key,遍历数组返回的数组的下标(key)。for ... in 循环不仅可以遍历数字键名,还会遍历原型上的值和手动添加的其他键。for of遍历时候:对象就是键值value,数组就是数组的值,字符串就是字符。for of 循环用来获取一对键值对中的值,而 for in 获取的是 键名。贱人。
原创
发布博客 2024.04.01 ·
348 阅读 ·
5 点赞 ·
0 评论 ·
3 收藏

理解虚拟dom

虚拟 DOM是由一系列的 JavaScript 对象组成的树状结构,每个对象代表着一个DOM元素,包括元素的标签名、属性、子节点等信息。虚拟 DOM中的每个节点都是一个 JavaScript 对象,它们可以轻松地被创建、更新和销毁,而不涉及到实际的DOM操作。将目标所需的 UI 通过数据结构“虚拟”地表示出来,保存在内存中,然后将真实的DOM与之保持同步。
原创
发布博客 2024.03.31 ·
1063 阅读 ·
15 点赞 ·
0 评论 ·
11 收藏

Service worker离线缓存--初识 未学完版本

我们知道web worker是一个独立的线程。而Service Worker是一个独立的进程Service Worker基于WebWorker,继承webworker的各种特性。Service Worker理解为一个介于客户端和服务端之间的一个代理服务器。serviceWorker不会因为浏览器关闭而销毁serviceWorker可以多页面使用(同一个服务,serviceWorker可以服务全部,webWorker是一一对应的)httpslocalhost。
原创
发布博客 2024.03.26 ·
245 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

微派网络一面

就司机招募。
原创
发布博客 2024.03.19 ·
782 阅读 ·
7 点赞 ·
0 评论 ·
20 收藏

大量数据的优化之虚拟滚动和web workers

通过设置内容容器的高度来容纳所有数据,然后定义一个函数根据滚动的位置计算出可见区域的数据范围,再使用渲染函数传入可见数据的范围进行只渲染可见区域的数据。(1)设置每条数据的高度和容纳所有数据的高度(2)主要是使用scrollTop找出卷去的高度,clientHeight找出数据可见区域的高度。(3)第一个数据index:scrollTop/itemHeight 然后使用Math.floor进行向下取整。
原创
发布博客 2024.03.14 ·
761 阅读 ·
5 点赞 ·
0 评论 ·
12 收藏

sleep(1000)函数+parseInt

当 executor 函数被执行时,它通常会开始某个异步操作,并在操作完成时调用 resolve 或 reject 函数来指示 Promise 的状态。在 sleep 函数中,executor 函数使用 setTimeout 来模拟一个异步操作,等待指定的毫秒数后调用 resolve 函数,将 Promise 状态设置为已解决。在 example 函数中,由于 sleep 函数返回的是一个 Promise,我们可以使用 await 关键字来等待这个 Promise 的解决。
原创
发布博客 2024.03.13 ·
257 阅读 ·
6 点赞 ·
0 评论 ·
3 收藏

关于this指向和react vue2 3 的diff--后续补充

全局作用域中或者普通函数中this指向全局对象window立即执行函数this必定指向window定时器this指向window事件中this指向事件源对象方法中谁调用就指向谁对象内调用方法,谁调用就指向谁构造函数中this指向对象实例1.全局作用下默认绑定window 全局作用下独立调用函数绑定window2.隐式绑定:对象內调用方法 谁调用就指向谁3.显式绑定call、apply、bind bind返回一个新函数,新函数指向绑定的对象,旧函数不会4、new绑定。
原创
发布博客 2024.03.13 ·
395 阅读 ·
8 点赞 ·
0 评论 ·
5 收藏

vue和react的区别

因为View中很多控件的数据类型和Model中的属性不相同,例如Model中的时间数据可能是一串数字,View想要展示成日期的格式,这就需要一种转化,这个转换如果放在View不合适,因为View中不应该出现逻辑代码,放在Model中也不合适,这回导致Model臃肿庞大,因为这种问题的存在诞生了ViewModel,,但是单向数据流并非单向绑定,React想要从一个组件去更新另一个组件的状态,需要进行状态提升,即将状态提升到他们最近的祖先组件中,触发父组件的状态变更,从而影响另一个组件的显示。
原创
发布博客 2024.03.08 ·
1323 阅读 ·
8 点赞 ·
0 评论 ·
28 收藏

react的diff源码

react 的每次更新,都会将新的 ReactElement 内容与旧的 fiber 树作对比,比较出它们的差异后,构建新的 fiber 树,将差异点放入更新队列之中,从而对真实 dom 进行 render。简单来说就是如何通过最小代价将旧的 fiber 树转换为新的 fiber 树。
原创
发布博客 2024.03.08 ·
990 阅读 ·
11 点赞 ·
0 评论 ·
29 收藏

vue和react的diff算法源码

Vue.js 的 Diff 算法通过对比新旧虚拟 DOM 树的节点,最小化了对实际 DOM 的操作,提高了渲染效率。这个算法的时间复杂度是 O(n),其中 n 是节点的数量,是一种相对高效的算法。4.删除多余节点: 如果新节点的子节点数量小于旧节点,说明有节点被删除,需要将多余的节点从 DOM 中移除。5.新增节点: 如果新节点的子节点数量大于旧节点,说明有节点被新增,需要将新增的节点创建并插入到相应位置。2.更新属性: 如果同层级节点相同,就会比较其属性,更新新旧节点的属性。
原创
发布博客 2024.03.08 ·
988 阅读 ·
16 点赞 ·
0 评论 ·
16 收藏

vue2和vue3

大部分生命周期钩子名称上+“on”关键字,功能是类似的。不过vue3在组合式api种使用生命周期钩子时候需要先引入、而vue2在选项api种可以直接调用生命周期钩子。setup是围绕beforeCreate和created生命周期钩子运行的,不需要显示的去定义。
原创
发布博客 2024.03.08 ·
700 阅读 ·
20 点赞 ·
0 评论 ·
6 收藏

函数的变量提升以及导入模块语法的区别

综上所述,可以说 JavaScript 中的函数在变量提升方面具有特殊的行为,而函数声明会被完全提升,可以在声明之前调用。然而,函数表达式中的变量提升只包括变量本身,而不包括赋值的函数。JavaScript 中的函数存在变量提升的概念,这意味着在执行代码之前,函数声明会被提升到其作用域的顶部。由于函数表达式是赋值语句的一部分,在执行到该语句之前无法调用函数,因此在函数表达式之前调用会导致错误。虽然函数声明会被提升,但函数表达式的变量本身(而不是赋值的函数)会被提升,值为 undefined。
原创
发布博客 2024.02.10 ·
243 阅读 ·
7 点赞 ·
0 评论 ·
3 收藏

let var const

var有变量提升,函数作用域、,可以重复预定义let没有变量提升,块级作用域,可以重复定义,有暂时性死区(只有等到声明变量的那一行代码出现,才可以获取和使用该变量)const定义的变量不可重新定义,不可以重新赋值,没有变量提升,块级作用域,暂时性死区。
原创
发布博客 2024.02.10 ·
809 阅读 ·
9 点赞 ·
0 评论 ·
11 收藏

js和node事件循环区别

JavaScript是一门单线程语言,同一时间只能做一件事,但并不意味着单线程就是阻塞,而实现单线程非阻塞的方式就是事件循环。从上面可以看出,同步任务进入主线程,异步任务进入任务队列,主线程内的任务执行完毕为空,会去读取任务队列对应的任务,推入主线程执行。上述过程不断重复就是事件循环机制。
原创
发布博客 2024.02.06 ·
736 阅读 ·
10 点赞 ·
0 评论 ·
13 收藏

关于promise和async/await 和gennerator-未写完版本

async 和 await 是 (ES8) 引入的异步编程的语法糖,用于更方便地处理异步操作。基本原理:当一个函数被声明为 async 函数时,它将始终返回一个 Promise 对象。async 函数内部可以包含 await 表达式,这些表达式会暂停函数的执行,等待 Promise 解析为 resolved 状态,然后继续执行函数。await 只能在 async 函数中使用。await 表达式会暂停 async 函数的执行,等待 Promise 解析为 resolved 或 rejected 状态。
原创
发布博客 2024.02.02 ·
643 阅读 ·
12 点赞 ·
0 评论 ·
21 收藏

关于v8垃圾回收机制联想到的知识点

这也是两者最大的区别。V8 是使用副垃圾回收器和主垃圾回收器处理垃圾回收的,不过由于 JavaScript 是运行在主线程之上的,一旦执行垃圾回收算法,都需要将正在执行的 JS 脚本暂停下来,待垃圾回收完毕后再恢复脚本执行。:对于对象A,任何一个对象引用了A的值,计数器+1,引用失效时计数器-1,当计数器为0时责备回收,但是会存在循环引用的情况,可能会导致内存泄漏,自2012年起,所有的现代浏览器均放弃了这种算法。通过增量标记的方式,V8引擎可以在垃圾回收过程中与应用程序的逻辑交替执行,减少长时间的阻塞。
原创
发布博客 2024.02.02 ·
1131 阅读 ·
30 点赞 ·
0 评论 ·
28 收藏

js事件循环以及promise

1.事件循环输出顺序1.事件循环输出顺序。
原创
发布博客 2024.01.18 ·
554 阅读 ·
8 点赞 ·
0 评论 ·
7 收藏

代码规范666

5. 在数组的方法回调函数中使用return语句,如果函数体由一条 返回一个表达式的语句 组成,这个时候就可以忽略return。// bad 没有返回值, 导致在第一次迭代后acc 就变成undefined了。Let事块级作用域,var是函数作用域,同样是为了减少代码的不可控,减少意外。2.当创建一个带有动态属性名的对象的时候,把定义的所有属性放在对象的一个地方。2.用array.push向数组中添加一个值,而不是直接用下标。// good getKey('enabled')是动态属性名。
原创
发布博客 2024.01.16 ·
623 阅读 ·
16 点赞 ·
0 评论 ·
23 收藏

script标签的defer和async及服务器渲染

有时候,项目中也会采用混合的方式,称为“同构应用”(Isomorphic App),结合了服务器渲染和客户端渲染的优势。在实际项目中,有时候也会选择使用混合的方式,即同构应用(Isomorphic App),结合了服务器渲染和客户端渲染的优势,以满足项目的多样化需求。渲染树包含了需要在屏幕上渲染的所有可见元素,但它并不包括不可见的元素,比如中的元素。3.对于内容频繁变化: 如果项目中的内容需要频繁变化,但用户对于初始加载速度的要求较高,可以考虑使用 SSR,以保证页面的初始内容是即时可见的。
原创
发布博客 2024.01.15 ·
1184 阅读 ·
19 点赞 ·
0 评论 ·
26 收藏
加载更多