自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 收藏
  • 关注

原创 Vue2中为啥不用 Object.defineProperty 实现响应式数组 ? 不能监听到数组变化吗?

所以,在Vue 3.0 中,尤大把响应式数据部分弃用了 Object.defineProperty,而使用 Proxy 来代替它。难道 Object.defineProperty 真的要背这锅么,下面就来分析一下 Object.defineProperty 真的无法监测数组下标的变化吗?但是有一个问题,就是对于数组的一些常用方法如push/pop等,无法触发监听;可以监听数组的元素的增加和修改,但不能监听数组长度的变化和数组方法的调用。本身是可以监控到数组下标的变化的,只是在 Vue 的实现中,从。

2024-06-26 11:00:45 373 1

原创 聊一聊 js的事件循环、进程、线程、定时器延迟问题

聊一聊 js的事件循环、进程、线程、定时器延迟问题

2024-06-05 14:37:00 867

原创 国际化项目词条处理方案-拒绝重复性的搜索+复制+粘贴,不然手腕得麻了

【代码】国际化项目词条处理方案-拒绝重复性的搜索+复制+粘贴,不然手腕得麻了。

2024-05-21 10:44:13 289

原创 力扣-21. 合并两个有序链表-js实现

【代码】力扣-21. 合并两个有序链表-js实现。

2024-05-08 18:55:01 272 1

原创 根据业务需要自定义下拉组件样式(比如不同的状态颜色)的思考和实现

根据业务需要自定义下拉组件样式(比如不同的状态颜色)的思考和实现

2024-05-08 14:46:24 275

原创 js手写并发请求控制

【代码】js手写并发请求控制。

2024-04-10 10:48:45 196

原创 js实现完整深拷贝、包括循环引用、symbol、set/map等

【代码】js实现完整深拷贝、包括循环引用、symbol、set/map等。

2024-04-09 09:54:03 341

原创 js 手写实现promise 带注释版

【代码】js 手写实现promise 带注释版。

2024-04-03 09:57:35 85

原创 js树形结构深度优先遍历

【代码】js树形结构深度优先遍历。

2024-04-01 09:56:18 122

原创 js手写二分查找

【代码】js手写二分查找。

2024-03-26 09:47:05 87

原创 js手写选择排序

js手写选择排序

2024-03-18 16:37:11 343

原创 js手写快速排序

快速排序

2024-03-18 16:14:35 516

原创 手写vue将虚拟 Dom 转化为真实 Dom

【代码】手写vue将虚拟 Dom 转化为真实 Dom。

2024-03-15 18:10:52 589

原创 实现Object.create、实现Object.freeze

Object.seal() 静态方法密封一个对象。密封一个对象会阻止其扩展并且使得现有属性不可配置。密封对象有一组固定的属性:不能添加新属性、不能删除现有属性或更改其可枚举性和可配置性、不能重新分配其原型。只要现有属性的值是可写的,它们仍然可以更改。seal() 返回传入的同一对象。Object.freeze冻结一个对象,让其不能再添加/删除属性,也不能修改该对象已有属性的可枚举性、可配置可写性,也不能修改已有属性的值和它的原型属性,最后返回一个和传入参数相同的对象;

2024-03-14 13:59:21 322

原创 js手写实现迭代器生成器函数包括【ES5】和【ES6】

【代码】js手写实现迭代器生成器函数包括【ES5】和【ES6】

2024-03-13 10:06:00 493

原创 js手写实现观察者模式

【代码】js手写实现观察者模式。

2024-03-12 18:52:52 382

原创 js手写实现简版promsie

【代码】js手写实现简版promsie。

2024-03-12 18:48:39 328

原创 js手写实现 Promise.race

【代码】js手写实现 Promise.race。

2024-03-12 18:44:54 385

原创 js手写实现 Promise.all

实现 Promise.all 如果参数中有一个promise失败,那么Promise.all返回的promise对象失败。在任何情况下,Promise.all 返回的;传入参数为一个空的可迭代对象,则直接进行resolve。promise 的完成状态的结果都是一个数组;

2024-03-11 18:52:35 365

原创 js手写Promise.prototype.finally

实现 Promise.finally前面的promise不管成功还是失败,都会走到finally中,并且finally之后,还可以继续then(说明它还是一个then方法是关键),并且会将初始的promise值原封不动的传递给后面的then.如果finally函数中有promise等异步任务,会等它们全部执行完毕,再结合之前的成功与否状态,返回值;finally里的函数,无论如何都会执行,并会把前面的值原封不动传递给下一个then方法中;

2024-03-08 18:12:37 524

原创 JS手写Promise.resolve()

实现Promise.resolve() 传参为一个 thenable 对象,返回的 Promise会跟随这个对象,采用它的最终状态作为自己的状态。其他情况,直接返回以该值为成功状态的promise对象。传参为一个 Promise, 则直接返回它。

2024-03-07 14:12:46 500

原创 js手写寄生组合式继承 【面试简版】

寄生组合式继承 类的继承在几年前是重点内容,有n种继承方式各有优劣,es6普及后越来越不重要,那么多种写法有点『回字有四样写法』的意思,如果还想深入理解的去看红宝书即可,我们目前只实现一种最理想的继承方式。

2024-03-07 11:39:32 329

原创 js手写深拷贝 包括【简单版】 和 【完整版】

js深拷贝 会抛弃对象的constructor,所有的构造函数会指向Object。他无法实现对函数 、RegExp等特殊对象的克隆。对象有循环引用,会报错;解决拷贝循环引用问题。解决拷贝对应原型问题。

2024-03-07 10:19:48 578

原创 js手写无重复字符的最长子串-算法题

【代码】js手写无重复字符的最长子串-算法题。

2024-03-06 16:11:02 352

原创 js手写发布订阅者模式

【代码】js手写发布订阅者模式。

2024-03-06 14:58:26 500

原创 js手写实现jsonp

JSONP的实现原理是:客户端通过动态创建 script 标签,将需要跨域请求的 URL 作为 script 标签的 src 属性值,并在 URL 中携带一个回调函数的名称(一般为 callback 或 cb),服务端收到请求后,根据参数进行处理,并将处理结果作为一个参数传递给客户端指定的回调函数,最后返回给客户端的内容为回调函数的调用,并将处理结果作为参数传递进去,这样客户端就可以获取到跨域请求的数据了。跨域指的是在一个域名下的网页去请求另一个域名下的资源。2.处理url中的回调函数。

2024-03-04 10:13:55 376

原创 js手写实现call、apply、bind

手写实现call apply bind改变了 this 指向,让新的对象可以执行该函数。那么思路是否可以变成给新的对象添加一个函数,然后在执行完以后删除?

2024-03-01 16:54:31 368

原创 js函数柯里化

在数学和计算机科学中,柯里化是一种将使用多个参数的一个函数转换成一系列使用一个参数的函数的技术。:用闭包把参数保存起来,当参数的数量足够执行函数了,就开始执行函数。

2024-02-29 11:17:05 330

原创 js手写节流时间戳版和定时器版

节流(throttle):不管事件触发频率多高,只在单位时间内执行一次。

2024-02-28 09:54:46 319

原创 js手写防抖 包括立即执行 和 不立即执行两种

防抖(debounce):不管事件触发频率多高,一定在事件触发n秒后才执行,如果你在一个事件触发的 n 秒内又触发了这个事件,就以新的事件的时间为准,n秒后才执行,总之,触发完事件 n 秒内不再触发事件,n秒后再执行。

2024-02-27 09:44:00 458

原创 js实现单例模式

创建对象和管理单例的职责被分布在两个不同的方法中,这两个方法组合起来才具有单例模式的威力。在合适的时候才创建对像,并且只创建唯一的一个。

2024-02-25 21:24:03 377

原创 手写vue实现双向绑定

【代码】手写vue实现双向绑定。

2024-02-25 20:15:01 392

原创 实现LRU缓存算法

LRU 英文全称是 Least Recently Used,英译过来就是”最近最少使用“的意思。LRU 是一种常用的页面置换算法,选择最近最久未使用的页面予以淘汰。该算法赋予每个页面一个访问字段,用来记录一个页面自上次被访问以来所经历的时间 t,当须淘汰一个页面时,选择现有页面中其 t 值最大的,即最近最少使用的页面予以淘汰。

2024-02-24 14:14:06 331

原创 解决Nginx 本地代理 403 Forbidden、mac中403 Forbidden

解决nginx 代理 403 问题

2024-01-03 18:25:59 650

原创 手写promise.all 手写promise.race

【代码】手写promise.all 手写promise.race。

2023-12-08 09:42:33 31

原创 获取视频时长,loadedmetadata 未监听到

遇到一个特例问题,一般的都能监听到拿到视频文件信息获取视频时长,就测试突然提的说新建有问题,初次排查是视频时长没获取到,还以为哪里没不对一直没有走进。

2023-11-16 17:52:17 729

原创 数据结构-数组和链表的区别

双向链表的节点定义同时包含指向后继节点(下一个节点)和前驱节点(上一个节点)的引用(指针)。相较于单向链表,双向链表更具灵活性,可以朝两个方向遍历链表,但相应地也需要占用更多的内存空间。我们知道,存储数组的内存空间必须是连续的,而当数组非常大时,内存可能无法提供如此大的连续空间。**环形链表:**如果我们令单向链表的尾节点指向头节点(即首尾相接),则得到一个环形链表。缓存局部性: 当访问数组元素时,计算机不仅会加载它,还会缓存其周围的其他数据,从而借助高速缓存来提升后续操作的执行速度。

2023-11-16 10:24:37 58

原创 js判断数据类型包含基本数据类型和引用数据类型

js全面判断数据类型

2023-10-12 10:08:38 37

原创 js类型转换---挺多了--亲测正确

类型转换—挺多了–亲测正确<script> console.log(null == undefined); //true console.log(null === undefined); //false var a = 42; var b = a + ''; //隐式强制类型转换 var c = Str...

2020-04-13 17:16:35 120

原创 闭包的理解

闭包理解闭包的作用延长变量的作用范围和生命周期通过闭包使得外部函数能够访问内部函数的变量,本来外部不可以访问内部,内部可以访问外部–作用域链查找变量<script> var name = "The Window"; var object = {     name: "My Object", ge...

2020-04-13 13:09:50 108

空空如也

空空如也

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

TA关注的人

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