自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Promise源码模拟内部实现,then和mypromise构造函数,resolve,catch,reject,myfinally实现

promsie接受一个函数作为参数,这个函数称作exe,exe包含 resolve和reject两个参数 是两个函数,内部的异步任务会放入对应的异步队列 等着then的执行。catch方法是then方法的简化形式,是promise.then(undefined,onrejected)方法的别名。1 将_resolve和_reject分别封装到函数里 然后放到settimeout里,防止exec是同步的。允许在 `Promise` 的 `then` 或 `catch` 后插入一个回调。then 方法的实现。

2024-09-08 11:42:39 184

原创 Vue3 Hooks 用法 scrollTop, mousemoveHandler,useCountDown

注意 一般hooks里包括一些函数钩子,比如mounted,注意 hooks里重要的是state一般被包裹在函数里面,这样不同组件调用 不会共享state//一键回到顶部 时间默认1000毫秒if(!timer){else{//这部分让平滑动画,直接赋值timer=null},40)//响应式数据实时滚动距离//同步scrolltop//组件挂载时候添加scrollhandler})//组件卸载时候移除scrollhandler})//如果存在要恢复的数据。

2024-07-04 21:39:10 427

原创 js继承,原型链继承,构造函数继承,组合式继承,原型式继承,寄生式继承,组合寄生式继承,extends继承

继承的理解,复用父类的属性和方法并增加新的属性和方法。

2024-06-16 20:30:07 430

原创 实现自己的组件库<4>. 仿elementui,封装 radio组件,radiogroup组件,checkbox组件,checkbox-group组件,form组件和form-item组件

v-model给什么无所谓,最终需要得到的是label的值,有v-model肯定会接收到value。如果是多个box一起用,value就有用了,因为选中的是value,这个value就是label。由于父组件传入数据不能修改,在radio里绑定的v-model绑定的数据应该是重写定义的。在radio.vue里肯定不能写固定的,用插槽替代,让男和女两个出现在界面里。在父组件用provide提供一个值,在任何孙组件里用inject获取值。首先设置v-model,name,label属性,需要传参数,

2024-06-15 19:26:25 671

原创 仿element-ui 实现自己组件库 <3>

用户使用switch组件实际上当成表单元素使用,可能用到name属性,需要在switch组件中添加一个checkbox,当值改变时候,需要设置checkbox的value值。nexttick是基于promsie的封装,这里用语法糖async和await,用nexttick等数据修改后dom更新完毕再更改按钮颜色。如果传来show-password判断是否需要切换密码显示,如果不传不判断。同步checkbox里的checked值,一进来mounted和切换时候设置值。点击label相当于点击input框。

2024-06-14 14:57:09 759

原创 搭建自己的组件库<2>dialog 组件

同样创建组件dialogue.vue后全局注册。

2024-06-09 20:54:04 984 2

原创 封装组件库仿elementui<1>

=是包含的意思,只要类名包含miao-icon-,就用如下样式,这样就只要写一个类名就行了。$slots能够获取所有插槽,只有icon的slots为空就可以不显示文字span。在下载下来的iconfont.css里 把类名全改成miao-icon。用到props传参,app向button组件传参数type。然后发现button里点击事件,直接给组件定义事件无法触发。用属性选择器:[class*='miao-icon']然后所有button都有了camera的icon。然后在button里添加。

2024-06-07 21:24:57 589

原创 2024 前端手撕代码 有限异步调用promise,实现自己的reduce方法,实现自己的map方法,实现自己的call,bing,apply方法,数组和对象去重

​​​​​​​。

2024-06-06 17:30:54 242

原创 2024 javascript前端面试手撕代码 deepequal,deepcopy,浅拷贝深拷贝,手写防抖节流,手写promise.all promise.race,拉平数组,实现new操作符原理

Promise.race([p1, p2, p3])里面哪个结果获得的快,就返回那个结果,不管结果本身是成功状态还是失败状态。⚠️`catch(err=>reject(err))` 和`catch(err=>console.log(err))`节流,单位时间内只执行一次,比如scroll和resize事件。递归判断俩对象是否相等。

2024-06-04 21:48:51 175

原创 贪心算法三道总结:合并区间,无重叠区间,用最少数量的箭引爆气球

遍历结束后,将最后一个 res 添加到 ans 中,因为最后一个区间不会在循环内被添加到结果中。如果当前区间的起始时间小于 maxx,说明这个区间与前面的区间发生重叠:增加 res 计数器。从第二个区间开始,依次检查每个区间是否与当前不重叠区间集合(由 maxx 表示)发生重叠。更新 res 的结束点为 res结束点和当前区间结束点中的最大值。更新 res 为当前区间。返回结果:最后,返回需要移除的重叠区间的数量 res。更新 maxx 为当前区间的结束时间。从第二个区间开始,依次处理每个区间。

2024-05-22 15:32:05 244

原创 promise实现多次超时重传

的函数,该函数返回一个 Promise 对象。这个 Promise 在一个 setTimeout 函数内部,500 毫秒后会执行。在 setTimeout 内部,生成一个随机数。,表示重试 3 次。如果所有重试都失败,会捕获到 Error 对象,并打印出其错误消息。为 0),则抛出一个 Error 对象,其中包含。在这个函数内部,使用了一个。函数返回的 Promise 对象。返回的随机数),然后返回。的函数,它接受一个参数。大于 0.7,则调用。首先,定义了一个名为。然后,定义了一个名为。

2024-04-17 20:36:29 228

原创 绑定class,条件渲染,列表过滤,列表排序

将index作为key:如果对数据进行逆序添加,逆序删除等破坏顺序操作,产生没有必要的dom更新,效率低;一旦有输入类dom(input等),就会串行。2 将数组中元素单独替换,数据修改成功但vue不能检测到,因为数组元素没有getter和setter,修改数组中元素无法实现响应式。新建一个filpersons存过滤后的数组,由于filter函数是通过返回新的数组但对原数组没有修改的方式进行过滤的。如果旧的虚拟dom找到与新的虚拟dom相同的key,如果内容没变直接使用已经转的真实dom(复用dom节点)

2024-01-19 16:05:21 1181

原创 数据绑定,defineProperty,v-on,事件处理

​​​​​​​。

2024-01-15 15:15:30 1402

原创 键盘事件,DOM事件流,e.keyup, e.keypress,BOM里的window对象, setInterval, clearInterval

监听事件:传统的onclick对于后面的注册事件会覆盖前面的注册事件方法监听注册方式:addEventListener()注意:type事件类型字符串 click mouseover不用on删除事件在移除事件里不能用匿名函数,不然移除出错dom事件流从页面接受事件的顺序第三个参数决定是冒泡(顺序为son,father)还是捕获(顺序为father,son),为true代表捕获解决问题:只点击了son为何father和document都弹出了。

2024-01-05 16:02:00 880

原创 createElement, parentNode, removeChild, appendChild

3 .children[0],.children[ol.children.length-1](ol是变量,具体见楼下代码)html结构:一个大ul里包括四个li,每个li里上下栏,上栏是a标签,下栏是ul包含三个li。previousSibling前一个兄弟节点,包括元素节点,文本节点。nextSibling获得下一个兄弟节点,包括元素节点,文本节点。需要把所有链接取过来,点击当前链接时候,删除当前链接的li。文本节点 nodetype=3(文字,空格,换行)//将一个节点添加到父节点指定子节点前面。

2024-01-01 09:55:58 508

原创 tab切换栏,淘宝图关闭,精灵图遍历,onfocus/onblur, setAttribute, getattribute

存着所有以data开头的自定义属性注意后面就不用跟data了,因为前面dataset已经包括data了或者(这里element取的div或者区分:对于来说写什么样的自定义属性都能被获取,但是dataset只能获取data-开头的自定义属性。

2023-12-14 16:57:31 930

原创 flex布局,flex-direction, justify content, align-content

1 数值越小,排列越靠前默认为02 和z-index不一样在上述程序中想把2放1前面order:-1;默认都是0,第二个孩子改为-1,-1在0前面,所以这样第二个孩子会出现在第一个孩子前面。

2023-12-13 14:46:43 372

原创 品优购:主体页,列表页,注册页

3)注册核心内容里:一定加一个父盒子,父盒子给个宽度,在里面水平居中显示,在里面通过ul和li显示,每个li包含三块:label(行内元素)input和span;4)安全程度部分,再加一个li里面放三个span,依次添加三个类名,通过padding拓展开span的大小,并增加相应背景颜色;6)注意这里对input的text表单调整宽高是对于input设置的,而里面有text类型的还有checkbox类型的因此通过将input里的class设置为inp,防止把checkbox类型的框也带成同样格式;

2023-12-02 23:23:34 923

原创 品优购:nav导航、footer部分

准备.mod_help大类,注意这里盒子间间距通过宽度来设置,每个盒子都由data list组成,但是最后一个list因此会掉下去,通过last-child选中后重新设置宽度。先看dropdown里,先表头,这里意思是description term, 然后是一系列表格内容,其中text-align,line-height调整。navitems用无序列表写,他们都是并列的,文字要垂直居中,防止文字个数不一样,使用margin,最好给a,这样用户点击链接跳转范围大。nav盒子通栏有高度,有下边框。

2023-11-28 12:14:24 458

原创 品优购首页快捷导航部分

首先是search整个模块,与父盒子header关系是子绝父相,调整top和left值到正确位置,然后在search整个模块里包含input:search和button两个模块,分别调整高和宽,里面的input设置padding。注意:在css里引入直到block的部分,并且记得改五行关于front的目录,将front文件夹放入根目录里,\ea43记得加反斜杠转义符号。关键词就一堆下来后继续absolute,修改top和left的值,然后hotwords里的a设置个margin。

2023-11-25 21:10:19 1648

原创 属性选择器,结构伪类选择器,伪元素选择器,box-sizing,transition

类选择器,属性选择器,伪类选择器,权重都是10

2023-11-24 15:46:32 846

原创 css三角,鼠标样式,溢出文字

解决: 1 给图片添加vertical-align:middle,top,bottom。css三角中:line-height:0和font-size:0是防止兼容性的问题。vertical-align:baseline默认父元素基线对齐;4 vertical-align 设置图片或者表单和文字垂直对齐。这样能使得当左边是图片右边是文字时候,文字在左边图片中间的位置。bug:图片底侧会有空白缝隙,由于行内块元素和文字基线对齐。那么这个盒子里所有行内元素和行内块元素都会水平居中。1 单行文本溢出显示省略号。

2023-11-21 16:18:36 277

原创 前端:定位,display,visibility,overflow

定位模式:position:static,relative,absolute,fixed。由于小箭头压住父盒子,以父盒子为标准,不能用fixed,fixed以浏览器为准。隐藏对象,而且后面的盒子会占据它的位置(用的多!绝对定位脱离标准流,不占用原来的位置, 父亲一定要占有原来的位置,而孩子不用。top:100 水平坐标走了100,相当于原来位置在现在的位置的上方100。(2) 如果嵌套的爷爷和父亲都有定位,以就近的父亲为准。不是隐藏元素,只是把多出内容隐藏,只显示在盒子里的部分。

2023-11-16 11:45:44 74

原创 css基础4

只写一个角:border-top-left-radius, border-top-right-radius,border-bottom-left-radius。第一个参数影子数值越大越往水平的右边移动,第二个参数影子数值越大越往水平的上面移动,第三个参数数值越大越模糊,第四个参数数值越大影子整体越大。1)块级元素独占一行,从上向下顺序排列 div,p,h1-h6,ul,ol。浮动的盒子不再保留原先的位置,浮动盒子上边缘对齐,父元素管上下,子元素管左右。前面浮动元素有一个标准流父元素,他们都是有高度的。

2023-11-08 12:17:18 39

原创 css基础3

text-decoration差点写成了overline,padding和margin都可以,因为没有对ul指定宽度和高度。

2023-11-06 21:47:17 26

原创 css基础2

设置父元素margin-top为10,子元素margin-top设置为30,但是小盒子没有往里面走,反而大盒子往下靠了30。在盒子内部没有指定width属性,或者如果父元素指定了width,那么在子元素中没有指定width,就不会撑开盒子。上内边距5px, 左右内边距10px, 下内边距20px。padding: 5px 10px 20px 30px:上5px 右10px,下20px,30左,顺时针。margin: 20px 30px 40px 50px(同padding)表示上下5px 左右10px。

2023-11-05 23:34:49 38

原创 CSS基础

font:font-style font-weight font-size font-family顺序,其中font-size和font-family最后两个绝对不可以省略。-text-decoration:文本装饰,none,underline(直接对a标签设置就行)(2) 行内样式表:直接在标签属性里写 style="属性名:属性值;-text-indent:文本缩进,2em(直接对p标签设置就行,别不小心加个.)通配符选择器 *{属性名:属性值}选择所有标签。-text-align:文本对齐。

2023-11-03 16:16:47 30

原创 html基础

dl></dl><--dl里只能放dt和dd,但是dt和dd都是容器级别的标签,里面放什么都可以 -->

2023-11-03 14:11:08 33

原创 javascript基础2

随机生成[1,10]之间的数字,并让用户猜,直到猜到为止。split,类似于前面的join。pop:删除末尾元素,一次一个。shift:删除开头第一个。unshift:开头加元素。

2023-11-02 14:36:36 33

原创 javascript基础

案例的关键一个是函数内不var的是全局变量,还有一个关键就是var a = b = c = 9;函数里带var的都是局部变量,没带var的是局部,函数外带var的是全局变量。(1)fun是变量名,函数表达式声明方式和声明变量差不多,可以传参数。在执行时候,先提升变量定义,再提升函数定义,最后按照顺序执行(赋值)(2) 形参不传值,形参个数大于实参时,默认undefined。但是若字符串后面跟着运算符,若字符串里包含数字,就会转为数字。==是判断数值相等,但是===是判断数值和数据类型都相同。

2023-11-01 10:08:54 52

原创 leetcode

或者从a到z计数,对于aet来说,都是a,e,t计数为1,但是list在python里不可映射,转换为turple元组。哈希思想,将乱序的单词按照char排序,得到相同的key,比如ate和eat的key都是aet。

2023-04-02 09:49:40 40

原创 双指针27 移除元素

思路:l和r终结情况为r=l此时要么不为val的值,+1,是val的值直接返回。l负责指向不为val的值,r负责指向为val的值,swap。那么双指针时候就是l<r。

2023-03-18 17:29:21 50

原创 链表交换(leetcode)

首先判断head是否为null,或者head->next=null,因为如果只有 一个节点1,则不需要交换。易错在设置nx节点且最后返回的也是nx节点,理解为递归后head->next为空的。//这个随着cur变化,放循环里。listnode* tmp=nx->next//随着cur变化,放循环里。1 迭代解决:设置变量头节点cur和jiedian,第二个易错是nx->next=head放在递归之后。每次要变化的节点只有。

2023-03-18 17:01:02 110

原创 递归和迭代,链表合并,leetcode21

理解:l1->next=(l2,l1->next):意思就是确定l1,//后一句就是return l1,意思是当前l1和l2比较,l1值小,选择l1,那么l1的下一个就是从11->next和原l2里选择。思路:先确定头节点,要两个,一个返回作用,一个连起合并后链表。递归:return的就是当前确定的。

2023-03-17 15:10:58 82

原创 括号匹配leetcode20

对于string s而言,z为其长度,stack<char>t;2是指特殊情况,即只有左括号而右括号为空,表现为栈不空但是z=0。只有右括号而左括号空,表现为栈空但是z非0。

2023-03-17 11:35:04 50

原创 xshell连接出问题,除了密码设置外

还可能是用户名与ubuntu上不一致。

2023-03-12 17:37:10 55

原创 最新版vscode下载镜像

https://https/vscode.cdn.azure.cn/stable/5e805b79fcb6ba4c2d23712967df89a089da575b/VSCodeUserSetup-x64-1.76.1.exe

2023-03-12 17:36:04 279

原创 洛谷 1821】捉迷藏 Hide and Seek,

Dijkstra

2022-07-05 20:22:40 145

转载 构造数组,构造成不下降子序列

构造序列

2022-07-04 21:29:10 90

原创 prim 算法

prim算法

2022-07-02 11:29:07 63

空空如也

空空如也

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

TA关注的人

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