![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
javascript辅助函数
陆康永
是时候开始明确自己写博客是为了什么,以前搞不懂,感觉挺浪费时间的,而且自己的水平写出了的博客可参考价值也不大,权当给以后的自己一个了解过去自己的机会,避免继续踩坑。
展开
-
uniapp 重置表单数据
点击重置时候想重置form的数据,原创 2024-07-23 17:46:35 · 526 阅读 · 0 评论 -
网页打开摄像头录制视频,下载和上传,支持手机端,视频压缩
也可以配置视频分辨率来压缩,这不一定可以拿到完全一致的分辨率,设备不一样结果不一样(会尽可能的接近,所以改小是有用的),但是分辨率过小时候(视频也会变模糊),改分辨率后可以看到同样20s情况下文件变小了,如何看保存的分辨率有没有变,可以用这个网站直接在线看。直接使用上面的代码生成的文件可以会略大,可以修改帧率来降低文件大小,这不会影响清晰度,只会“掉帧”,压的严重可能会卡卡,参考。向下兼容,如果不支持上面的api只能使用input标签调用原生的摄像头,然后上传前判断下长度和文件大小。原创 2024-07-03 15:05:34 · 450 阅读 · 0 评论 -
提高树结构访问效率
新增辅助数据,用数组替代树结构访问,不修改原来的树结构。树节点嵌套非常深的时候,想要直接访问某个节点非常困难。原创 2024-06-20 11:50:29 · 231 阅读 · 0 评论 -
await-to-js,promise错误拦截
今天介绍一个 npm 包 ——。它可以有效地帮助我们写出健壮的异步逻辑,降低异步编写成本。众所周知,Promise 是 es6 当中一个非常方便的流程控制对象,大大简化了异步逻辑的编写。我们可以使用await来让异步代码像同步代码一样写将异步的逻辑用近似同步的语法表达了出来,连回调都消失了,更加清晰易读,这是件很棒的事情。原创 2024-06-14 15:38:26 · 403 阅读 · 0 评论 -
es6字符串模板之标签化模板
我们经常搞前端开发工作的都会用到。它可以保留字符串换行格式,还能接受变量。这个给前端的字符串拼接带来了非常大的方便。但是还有一种用法可能是我们平时还是没有怎么用到的。原创 2023-11-26 23:07:30 · 1450 阅读 · 0 评论 -
console.log封装,显示调用的位置
一般我们都哦说直接调用console.log,但是有时候console.log太多了,非常影响效率,我们想统一开启console.log(不是生产环境移除console.log)但是控制面板哪里定位到的位置不是调用window.mylog的代码的地方,这给我们带来了非常大的麻烦,不方便调试。可以拿到代码报错的栈,用\n分割,分别展示代码允许的函数位置锚点,可以通过锚点直接定位到代码位置,每次console.log都新建个new Error对象,这个也会有新的内存开销,为什么会这样呢,我也不造也~~原创 2023-09-01 10:59:57 · 553 阅读 · 0 评论 -
unicloud 图片代理服务器代码
【代码】unicloud 图片代理服务器代码。原创 2023-08-02 18:53:55 · 92 阅读 · 0 评论 -
Vue3 让localstorage变响应式
原生的window.localStorage.setItem肯定无法实现数据响应式所以需要从写改函数。通过window.localStorage.setItem可以更改本地存储是,还可以更新aa的值。通过aa.value++;既可以更改js的数据修改试图,还有更新本地存储。,需用用到watch来监听数据的变化。此外,还需要对默认参数进行判断,支持数组,对象,和普通类型数据。在组件销毁前也需要移除依赖收集。对于上面2个需求的代码实现都。区分对象类型和普通类型。原创 2023-08-01 00:33:28 · 906 阅读 · 0 评论 -
visibilitychange事件:用于判断用户是否离开当前页面
都会触发document的的visibilitychange事件。原创 2023-06-29 16:54:54 · 372 阅读 · 0 评论 -
axios请求responseType为blob时,错误数据处理
axios请求responseType为blob拿到的数据为blob,如果接口返回的是json时候,拿到data为。那如何拿到这个原始的json数据呢?用FileReader就可以读取blob对象内容。但是浏览器控制台显示的响应数据为。原创 2023-04-12 14:28:58 · 1204 阅读 · 0 评论 -
js 数组 根据索引。2个元素互换位置
这里“arr.splice(currentindex,1,arr[targetindex])”只影响了一个,所以拿【0】array.splice返回的是一个数组,这个数组是被影响到的原来数组的元素,原创 2023-03-02 15:56:23 · 741 阅读 · 0 评论 -
HTML5 Drag and Drop
这是2个组合事件。dom对象分源对象和目标对象,绑定的事件也是分别区分源对象和目标对象事件绑定被拖拽元素,事件触发顺序是->->;对于目标元素,事件触发的顺序是->->。其中drag和dragover会分别在源元素和目标元素反复触发。整个流程一定是dragstart第一个触发,dragend最后一个触发。这里还有一个注意的点,如果某个元素同时设置了dragover和drop的监听,那么必须阻止dragover的默认行为,否则drop将不会被触发。原创 2023-02-25 16:47:47 · 703 阅读 · 1 评论 -
同源页面间的跨页面通信之BroadCast Channel
可以帮我们创建一个用于广播的通信频道。当所有页面都监听同一频道的消息时,其中某一个页面通过它发送的消息就会被其他所有页面收到。通过LocalStorage存储内容,并且在改变某个tab页面后,另外一个tab页面监听变动这种方式应该大家都比较熟悉了。这时候浏览器的广播就有用了,安卓软件,ios软件也有同样类同的功能,这里专注浏览器的自带的广播功能。当其他同源页面的不同tab执行如下代码时候就会出发上面的事件监听回调函数的执行。但是这种还是和存储有管理,如果单纯是用来夸tab通讯,而不是需要存储呢?原创 2023-02-16 00:36:05 · 706 阅读 · 0 评论 -
周期活动计算,三天一次活动
他算的不是完整的天数,不是不够一天算一天的那种,而是按照24小时有多少个时间戳,这个24小时是从开始时间算起来的,如果是20点开始,这个24小时就是20点开始算的。原创 2022-11-30 21:25:44 · 920 阅读 · 0 评论 -
js 对象类型数组使用reduce去重
那如果是对象数组了(元素为对象的数组),遍历?有没有可能一个语句解决?回调函数第一个参数cur是上一次遍历执行回调函数返回了的cur元素。如果不传递第二个参数,默认第一次为undefined。基础类型对象去重我们都会,set转一下就可以了。第一遍历的时候是第二个参数[]答案是 reduce。原创 2022-11-30 21:17:12 · 921 阅读 · 0 评论 -
使用微任务来实现缓冲队列
Javascript的所有的任务分为两种:在主线程上排队执⾏的任务,只有前⼀个任务执⾏完毕,才能执⾏后⼀个任务同步任务>微任务>宏任务以上内容参考:js中的同步和异步,宏任务和微任务,async和await - 百度文库我们可以明确知道 微任务的执行是低于同步任务的,有了这个概念后,对后面的内容理解就更加容易了。现在value变化一次时候,就会马上更新一下dom上面的doSomeThing函数的执行,是处于主线程中的,也是同步任务,是堵塞的,也是马上执行的。所以我们得把目光放到异步任务上原创 2022-06-11 19:13:14 · 388 阅读 · 2 评论 -
多层数据调用,中途出出现undefined,容错处理
一。ES2020链判断运算符var aa={b:{c:{e:"1000"}}}var b=aa?.c?.f;console.log("b",b);//undefinedif(b){ console.log("true",b)}else{ console.log("中途出现undefined")}如果遇到中途出现undefined就返回undefined二.我们自己实现一次var aa={b:{c:{e:100}}}function catchUndef...原创 2020-05-30 16:23:08 · 617 阅读 · 0 评论