自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 根据输入的数字,对树形数组进行级数筛选

实现树形数组中每一级的子元素按照级数进行筛选。如果级数输入为2,则返回每个元素只包含两级,如果输入3则返回每个元素只包含3级。思路:根据传入的级数进行递归。

2024-04-18 14:17:01 48

原创 关于unaipp生成的vue3项目开启微信云函数所遇到的问题

使用uniapp创建的vue3项目,需要用到H5静态页面跳转小程序的时候(具体操作看微信开发文档:https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/staticstorage/jump-miniprogram.html),会用到微信开发者工具的云开发,那么在创建的项目里面是没有用到云函数的,就没有云函数的文件夹。

2023-10-15 11:22:22 1194

原创 解构赋值、函数默认值

解构失败,变量如果在右边没有对应的值,就会用undefined填充;不完全解构,就是值多了。数组的解构会存在顺序问题,而对象的解构不会有顺序问题,它是根据对应的属性名进行解构的。结构完全一样的两个对象可以通过解构进行变量赋值。没有解构赋值之前我们定义三个变量会这样写。ES6新增的一个语法特征。如何取出wangwu?

2023-09-03 16:47:10 337

原创 自定义日期组件

思路: 三个数组分别存放年月日,年数组可以更加自己的需要来设置,比如说直接写死,或者设置当前年份的前后多少年可选(这个需要另外写函数),月份写死就是1-12月,日期数组根据所选年份和月份,通过new Date(年份, 月份, 0).getDate(),获取到当前所选月份的最后一天,从而确定这个月的天数。首先是获取到存放年月日的盒子,设置好年月日数组,然后对其进行初始化,然后给年月日的盒子绑定scrollend事件,处理滚动后的值。

2023-08-20 21:44:01 152

原创 关于浏览器调试项目出现crbug/1173575, non-JS module files deprecated

解决:浏览器中的netWork,在这个位置选择No throttling,就可以了,至于为什么会出现这个问题和为什么这么解决我也不知道,望大神解答。

2023-08-06 12:18:39 145

原创 初步了解Canvas API

HTML5新增的标签:配合JavaScript Canvas技术的画布标签原本没有大小的,需要设置,设置canvas的width属性和height属性(不是在style中设置)</

2023-07-17 16:42:29 110

原创 面试记录06/27

slice()是纯粹的读取操作,不会对原数组进行修改,而splice()是对数组精选操作会修改原数组slice()的参数是起始位置和结束位置,返回选定元素组成的新数组;splice()的参数是起始位置、删除的元素的个数、插入的元素(可选参数)返回被删除的元素组成的数组,没有被删除的元素就返回空数组slice()的结束位置是不包含再选取范围内的,而splice()中删除元素的个数是包含再操作范围内的slice()不会改变原数组的长度,而splice()可以改变数组的长度。

2023-06-28 15:05:23 44

原创 防抖和节流

防抖函数的原理:把触发非常频繁的事件合并成一次去执行,在指定时间内值执行一次回调函数,如果在指定时间内又触发了一次事件,则回调函数的执行事件会在此刻重新开始计时,防抖是将多次执行变为最后一次执行,也就是说在N秒内(规定的时间内),只要你再次触发,计时器就会重新开始计时

2023-05-13 18:36:51 53

原创 同步与异步、JS任务、渲染互斥

如果把script标签写在head标签中或者前面,script标签解析会阻塞后边标签的解析。

2023-04-25 23:00:26 251

原创 事件处理函数、冒泡捕获、阻止冒泡默认事件

句柄绑定的方法,事件作用在哪个元素身上,哪个元素就是事件源,这样子的事件绑定如果写两个同样的事件处理函数,后面的会覆盖前面的。事件捕获和冒泡刚好相反,如果元素又绑定了冒泡又绑定了事件捕获,事件捕获先执行,但是在事件源的时候是按正常的顺序执行。w3c规范,IE9以下不支持, 可以给同一元素的同一事件类型,绑定不同的事件处理函数,false为是否捕获。绑定事件处理函数、事件处理程序, 通过一个事件,能得到一个什么样的结果。事件,元素天生就具备的,所以通常说的绑定事件是绑定事件的处理函数。

2023-04-24 11:42:36 75

原创 读写样式属性、操作伪元素、元素运动初探

读写样式属性DOM间接操作CSS 通过查看计算样式window.getComputedStyle(elem, null)[prop];方法,第二个参数null,其实是用来获取伪元素的样式的,但是IE8及以下是不支持这个方法的,它们有自己的方法elem.currentStyle[prop]elem.style是可读可写的,属性用小驼峰写;值一定是字符串;复合值一定拆解负值,比如border要拆开写 elem.style.borderWidth = '1px';elem.style.borderColor=

2023-04-24 11:40:58 41

原创 日期对象,计时器

setInterval() 计时器 window上的 每隔特定的毫秒数时间,执行一次函数,有返回值,返回每个定时器的唯一标识。如果把时间放在外边用变量保存的时候,它在执行的时候只会取一次值。setTimeout (function(){}, time) 延时器 延迟特定的毫秒数执行一次函数。setInterval和setTimeout的唯一标识并不冲突。,星期天是第一天,0 是星期天。执行定时器会返回一个标识。

2023-04-24 11:26:45 39

原创 节点创建删除、元素属性设置获取、节点属性

c.insertBefore(a,b)插入,在父级c节点下的子节点b之前插入a,Node.prototype。appendChild()增加子节点,动态的增加节点和动态的剪切节点在Node.prototype上。在原型上写一个,寻找兄弟元素节点的方法,为正找之后 ,为负数,之前的第N个,为0 找自己。父节点.removeChild(子节点)只是从dom树上删除,这个值还保存在内存中。在原型上写一个遍历父元素的子元素节点的方法。在原型上写一个找出一个元素的第N层父元素。写一个子元素逆序的方法。

2023-04-24 11:21:47 366

原创 获取元素节点,遍历树

nextElementSibling 返回元素节点之后的兄弟元素节点(不包括文本节点、注释节点) previousElementSibling IE9及以下不支持。获取属性节点 getAttributeNode(),对于属性节点来说,用value和nodeValue都能获取。nodeValue 属性节点、注释节点、文本节点都有相应的nodeValue。寻找子元素结合chileNodes封装,只返回元素节点,过滤了其他的节点。hasChildNodes()判断元素是否有子节点,换行也有文本节点。

2023-04-24 11:21:13 119

原创 document对象、获取元素、节点、遍历树

其中,一个子元素只有一个父节点,一个父节点不一定只有一个子元素。Node.childNodes:获取指定节点的所有子节点集合,即包括元素节点,也存在其它节点。节点不是元素,节点是包含元素的,元素是节点中的一部分,节点中的元素节点也成为DOM元素,也就是通过document对象上的方法获取到的元素对象。Element.nextElementSibling:只读,获取元素节点的下一个兄弟元素节点。节点包含元素节点和其他元素,如何之间操作元素节点不受其他节点影响,可以通过直接获取元素节点。

2023-04-24 11:19:20 836

原创 变量生命周期、垃圾回收原理

针对函数内部的变量,就是局部变量,它只在函数执行的时候存在,当函数执行完成后局部变量就被销毁。JavaScript不需要手动清除回收垃圾,JS引擎包含垃圾回收机制。引用计数 reference counting 引用值不为0就不回收。标记清除 mark and sweep。JS垃圾回收机制的原理。1、找出不再使用的变量。3、固定的时间间隔运行。2、释放器占用的内存。

2023-04-24 10:36:55 74

原创 深拷贝与浅拷贝

思路:循环遍历需要拷贝的源对象,判断当前属性是否是元素自身 的属性,如果是的接着判断是否是引用类型同时不为null,通过typeof判断,然后根据不同的类型设置不同的接收容器,如果是数组,设置一个数组否则设置对象。上面的写法拷贝的并不是对象的值,而是指向对象值的引用,就会导致改了一个另一个也会跟着改,虽然“拷贝”了,但是两个对象没有完全独立。上面写法任然存在问题,它只处理了原始值,没有处理引用值,对象中的引用值任然是会指向同一个地址的,因此就需要深拷贝。解决浅拷贝中对象属性为引用值的情况。

2023-04-24 10:27:28 37

原创 对象遍历、caller_callee、this

instanceof判断原始值数据类型都是false,因为它本身是用来判断构造函数的prototype属性是否存在某个实例对象的原型上,而原始数据类型不是对象,不存在属性,因此不能判断。this是指代当前执行期上下文的一个属性,在非严格模式下总指向一个对象,this实在函数执行的前一刻产生的,因为在这时会产生函数执行期上下文。A instanceof B A对象的原型里到底有没有B的原型,只要在原型链上面重合的 instancof都是true。既然函数没调用,就不会有函数执行期上下文,那么。

2023-04-24 10:21:41 24

原创 关于vue-quill-editor富文本编辑器使用el-upload上传文件图片的问题(上传文件)

【代码】关于vue-quill-editor富文本编辑器使用el-upload上传文件图片的问题(上传文件)

2023-04-23 14:12:17 407

原创 el-image-viewer总是从第一张开始显示的问题

【代码】el-image-viewer总是从第一张开始显示的问题。

2023-04-23 14:11:27 400

原创 构造函数及实例化原理、包装类

使用new关键字实例化构造函数的时候,构造函数会在内部隐式的生成一个this对象,并将构造函数的this指向这个空对象(并不是真正的空对象,里面有__proto__保存了构造函数的原型),当调用构造函数的时候,构造函数内部会为这个新对象赋值,最后把这个this对象隐式返回。通过new关键字对构造函数进行调用,此时构造函数内部的this,不在指向window,而是指向实列化对象,new关键字改变了构造函数内部的this指向。被执行的时候这个时候Car也有自己的AO,AO里面默认的存了一个this对象。

2023-04-23 13:50:24 75

原创 函数基础与种类、形参实参及映射、变量类型

1、它是一个固定功能或者程序段被封装的过程,实现一个固定的功能,在这个封装题中需要一个入口和出口,入口就算参数,出口就算返回值。2、解耦合,通过函数,让一个模块具有更高的利用率,拥有独立性和单一责任制。函数名的命名规则 不能数字开头,可以包含字母数字下划线 小驼峰命名法。最基本的函数写法就是函数声明 function声明函数的关键字。函数形参和实参数量可以不相等。

2023-04-23 11:49:02 28

原创 CSS权重

text-decoration: underline(下划线,ins标签也是下划线)/line-through(删除线)/overline(上划线)/none(去掉线)宽高的属性:width, height, min-width, min-height, max-width, max-height。设置字体 font-family可以写复合值,中文字体标识,有空格的字体标识要加双引号。浏览器默认的字体大小是16px,浏览器设置字体的时候是设置高度,宽度自动缩放。宽高、字体、颜色、边框。

2023-04-23 11:42:33 27

原创 CSS盒模型

box-shadow:水平位置(必填) 垂直位置(必填) 模糊距离 阴影的尺寸 阴影颜色 阴影的种类(inset outset)文本属性:color, font, text-align,vertical-align,whitespace。*层,它就到新建的文档层上去了,所以就会导致下边的元素会上去。* 设置了定位后,会在当前的文档层之上在重新建一个文档。相对定位: 设置相对定位后,依然会新建文档层,但是之前文档层的位置还会保留。绝对定位 :设置了定位后,会在当前的文档层之上在重新建一个文档。

2023-04-23 11:42:12 28

原创 立即执行函数,闭包、对象、构造函数、实列化

/6表达式是忽略函数名的// (function b(){})是一个表达式,表达式是忽略函数名的 var a = 10;}) {面试题。

2023-04-23 11:40:09 32

原创 循环、引用值初识、显式及隐式类型转换

Number(“1a”) typeof(Number(“1a”) )是NAN 就是说字符串中有非数字就是转成NAN。然后再打印console.log(typeof(a)) ,typeof一个未定义的东西,得到的就是undefined。parseInt(要转换的数,radix),有2个参数,第二个参数表示转换数字想要的进制。任何基本类型String()都得到对应的字符串 toString(radix)可以填进制。:通过函数String()、Number()、Boolean()

2023-04-23 11:27:18 41

原创 原型、原型链、闭包立即执行函数、插件开发

原型prototype是function对象的一个属性,打印出来他本身也是一个对象,它以对象的形式存在,是构造函数的静态属性prototype,在内存中它里面保存的是该对象的引用原型解决了什么问题?提出出相同的内容,写到prototype上从而减少代码冗余,降低耦合,让构造函数创建的实列对象都能够拥有共享实例化对象不能对构造函数的prototype进行修改通过实列化的对象是不能对HandPhone.prototype对上的属性进行增删改的,只能查。constructor指向构造函数本身。

2023-04-23 11:26:31 29

原创 块级作用域与嵌套、let、暂时性死区

函数的作用域、全局作用域kiss原则 keep it simple stupid。

2023-04-23 10:39:18 67

原创 cookie增删改查,用户追踪

cookie存在的意义:因为HTTP协议是无状态的,当浏览器向服务器发出请求,服务器没办法区分浏览器用户身份及用户相关操作,所以cookie被作为一种存储手段,但是浏览器每次请求都会在请求头中带上cookie,会对性能方面有一定的影响,且它有大小限制,因此后来浏览器又退出了新的API ->storage。1、增加cookie,如果两次增加的cookie具有相同键名,后边的会覆盖前面的,但是在不同Domain和path下,不会覆盖。设置域:指定cookie在哪个域下可以被接收,如果不指定默认是当前源。

2023-04-21 16:35:57 153

原创 cookie持久登录

关于form表单

2023-04-21 16:30:25 126

原创 鼠标行为预测技术

因为有时候我们把鼠标从主菜单移到子菜单(斜移)的时候会切换子菜单,但是我们的目的并不是切换子菜单,所以需要通过鼠标行为的预测来设置延时器,以便斜移鼠标到子菜单的时候,其他主菜单不切换。**重点:**预判鼠标走的方向。

2023-04-21 16:19:16 157

原创 JSON跨域

JSONP JSON with Padding 跨域获取JSON数据的一致非官方使用模式JSON和JSONP不是一个类型JSON是数据交换格式JSONP是一种跨域获取JSON数据的交换技术JSONP抓取的资源并不直接是JSON数据,而是带JSON数据参数的函数执行哪些不受同源策略的影响1、img的srcy引入不同的图片资源2、link的href引入不同源的样式文件3、iframe的src引入不同源的网页资源4、script的src引入不同源的脚本文件资源。

2023-04-21 15:09:33 93

原创 6种跨域获取数据的方法

跨域HTTP请求同源:协议&&域名&&端口都相同不同源:协议||域名||端口其中有一个不同就是不同源关于iframeiframe可以获取窗口对象,通过iframe.contentWindowiframe窗口存在父子关系,可以在子窗口获取父级窗口的name属性wondiow.parent.name同源的页面父子窗口可以相互获取name属性window.name有共享性,一个窗口只有一个name,同一个窗口多个页面共享,只要不改变不关闭,窗口就只有唯一的一个

2023-04-21 11:58:57 690

原创 AJAX版本、响应数据、超时设置、同步异步

没发送之前是0,发送以后是1,onreadystatechange事件里面监控的是2,3,4这几个状态,readystate仅仅是针对请求的状态码,获取资源是否成功取决于status的状态。场景:AJAX请求后,在成功的回调函数中给某一全局变量赋值,如果是异步请求,是不能赋值成功的,因为AJAX操作需要时间,而外部程序执行比AJAX快,所以不会成功,但是异步可以,因为程序阻塞。async: 异步默认的async为true,AJAX异步请求时,不影响页面的加载,用户操作以及AJAX程序后的程序执行。

2023-04-21 11:20:29 850

原创 四次挥手及同源策略

上述情况会造成TCP服务器进程对之前所发送的TCP连接释放报文段的超时重传,并仍处于最后确认状态,串串的TCP释放报文段到达TCP客户进程,由于TCP客户进程处于关闭状态,因此不理睬该报文段,从而造成TCP服务器进程反复重传TCP连接释放报文段,并一直处于最后确认状态,无法进入到关闭状态,因此时间等待状态以及处于改状态2MSL时长,可以确保TCP服务器进程,可以收到最后一个TCP确认报文段。FIN-WAIT-1:等待远程TCP的连接中断请求,或者先前的连接中断请求的确认。

2023-04-20 16:16:34 28

原创 浏览器缓存

把已请求并响应的WEB资源(HTML页面、图片、js文件、CSS文件、数据等)复制一个副本存储在浏览器的缓存中。

2023-04-20 15:09:45 27

原创 el-popover嵌套时,打开内部的popover后,点击外部popover的空白部分无法将内部popover关闭

那么这时候就遇到了一个问题,每次点击一个新的弹框,之前打开的弹框不会关闭,而且点击弹框以外的其他空白部分弹框也关不了,这个问题怎么解决呢?解决弹框无法正常关闭的总体思路就是使用它自带的doClose()方法,至于为什么会造成这种弹框无法关闭的现象,我也不太清楚,下边是我的大致解决过程。1、首先给每一个弹框一个独一无二的ref(也可以给他们统一的ref,我感觉我这里不适合使用统一的解决,就用了下面的方法)2、点击按钮获取对应的子组件,阻止冒泡,并获取到所有的popover。获取所有的popover的函数。

2023-04-20 14:37:29 1733 2

原创 HTTP状态码、accept与content-type

304重定向Etag:服务端资源唯一标识符(优先级高于Last Modified)Last Modefied: 资源在服务器最后的修改时间(精确到秒)所以需要唯一标识404页面错误(页面不存在)403 服务器拒绝请求forbidden500InternetServe Error 服务器发生不可预测的错误‘503 服务器不能处理客户端请求。

2023-04-20 14:26:32 181

原创 WWW历史、HTTP报文、请求方式

在客户端和服务器之间发送的数据块,这些数据块以一些文本的源信息开头,描述了报文的内容及含义,后面跟着可选的数据部分,这些报文在客户端、服务器和代理之间流动。因此HTTP报文的发送也叫报文流每条HTTP报文包含一个客户端请求和一个服务端响应。

2023-04-20 11:53:24 122

原创 强制缓存与协商缓存

计算机已经接收过一次,然后保存以备将来使用的数据。

2023-04-20 11:10:39 67

空空如也

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

TA关注的人

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