JavaScript
文章平均质量分 63
关于JavaScript的一些学习和理解
十三月呀
这个作者很懒,什么都没留下…
展开
-
实用的js方法
使用方法原创 2023-07-19 18:17:31 · 98 阅读 · 0 评论 -
js 基础梳理
【代码】js 基础梳理。原创 2023-07-18 14:25:49 · 221 阅读 · 0 评论 -
JS设计模式-工厂模式
工厂模式是一种创建对象的设计模式,他提供了一种统一的接口来创建不同类型的对象原创 2023-07-04 14:24:38 · 601 阅读 · 0 评论 -
JS设计模式-单例模式
单例模式:限制类只能有一个实例化对象。模式特点:类只有一个实例全局可访问推迟初始化(与静态类,对象的区别)主动实例化实现方法:创建一个类,这个类包含一个方法。在没有对象的情况下,这个方法会创建一个新的实例对象。如果对象存在,则只返回对象的引用地址。应用场景:登录弹窗购物车命名空间引入第三方库(多次引用只会使用一个库引用,如jQuery)全局态管理store-Vuex优缺点:优点:适用于单一对象,只生成一个对象实例,避免频繁创建和销毁实例,减少内存占用缺点:不适用.原创 2022-03-17 17:52:46 · 5159 阅读 · 1 评论 -
js 使用雪花id生成随机id
https://www.jb51.net/article/194168.htm原创 2021-11-18 16:54:40 · 726 阅读 · 0 评论 -
reduce()方法的学习和整理
今天看文章的时候看到reduce方法去做循环比较是较为优雅的写法,遂学习了一波,现整理如下。文章链接:https://www.jianshu.com/p/e375ba1cfc471. 语法reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。reduce() 可以作为一个高阶函数,用于函数的 compose。注意: reduce() 对于空数组是不会执行回调函数的。arr.reduce(callback,[initialValue])callb原创 2020-12-30 17:51:35 · 713 阅读 · 0 评论 -
IOS 真机的时间getFullYear()返回值为NAN的问题
问题:HTML页面上,安卓和浏览器模拟器,获取的时间都正确,ios真机显示为一串NAN问题原因:兼容性问题解决:将时间格式的 - 替换为 /new Date("2017-02-16 20:41:10".replace(/-/g,'/')).getFullYear()原创 2020-09-23 10:03:14 · 622 阅读 · 0 评论 -
H5 + ajax 实现文件上传
利用H5的特效,file来实现文件上传 <input id="toSelectImage" type="file" accept="image/*">设置toSelectImage元素隐藏,点击上传按钮时,js触发该元素点击$('#toSelectImage').click()监听该元素的change事件 $('#toSelectImage').change(function (e) { var files = e.target.files || e.d原创 2020-08-03 17:34:52 · 535 阅读 · 0 评论 -
JavaScript学习
开启定时器console.time('test') //开启计时器console.timeEnd('test') //关闭计时器,都需要一个标识js开方Math.sqrt(36)in运算符通过in运算符可以检查一个对象中是否含有指定属性。返回结果为true、falseconsole.log("test" in obj)数据类型保存的内存空间基本数据类型基本数据类型的值直接在栈...原创 2020-06-30 12:07:35 · 147 阅读 · 1 评论 -
call,apply的区别和理解
apply()的用法apply() 方法调用一个具有给定this值的函数,以及作为一个数组或者类似数组对象提供的参数。func.apply(thisArg, [argsArray])thisArg必填,指的是在这个func函数运行时使用的this值。在非严格模式下,thisArg被指定为null或者undefined时会被自动替换为指向全局对象,原始值会被包装。argsArray可选,一个数组或者类似数组对象。其中数组元素将作为单独的参数传给func函数,如果该值的null或者undef原创 2020-06-30 11:43:27 · 234 阅读 · 0 评论 -
laydate设置两个时间选择器后面的时间大于前面的
//开始时间时间 let start_a = laydate.render({ elem: '#beginTime', trigger: 'click', //采用click弹出 theme: '#3278F0', done: function (value, date...原创 2019-04-26 11:28:47 · 3118 阅读 · 0 评论 -
for(var key in object){}语句枚举
for in语句可以用来列举出一个变量的所有成员。如果object是函数(或类即构造函数),那么将列出函数的所有静态成员;如果object是对象,那就是所有实例成员,key的类型是一个字符串,表示成员的名称。运用实例: let list=''; let params = data.data.messages; ...原创 2019-04-26 21:22:55 · 9043 阅读 · 0 评论 -
layui 的时间选择器选中本日,本周,本月
/** * 时间选择器 * **/let data=new Date();let monthCurr1=data.getMonth()+1;let yearCurr=data.getFullYear();let day;//时间选择器选择本周----周一function getMonday(){ let today=new Date(); let weekda...原创 2019-05-29 10:05:08 · 4282 阅读 · 0 评论 -
layui时间范围控件限制时间
设置时间范围最多选择90天。 //客流时间筛选 laydate.render({ elem: '#flowrateTime', //指定元素 range:'~', max : 'today' , change: function(value){ co...原创 2019-07-15 17:30:06 · 4537 阅读 · 0 评论 -
setTimeout和setInterval踩得坑
如果又想设置定时关闭,又想设置轮询,setTimeout 调用关闭定时器的时候必须用函数包裹起来清除定时器操作。 setTimeout(clear,60000);//一分钟之后关闭接口 //定时查看订单状态 function clear(){ clearInterval(orderTimer) } var o...原创 2019-07-20 10:52:55 · 238 阅读 · 0 评论 -
js计算出现的问题
java和JavaScript中计算小数运算时,都会先将十进制的小数换算到对应的二进制,一部分小数并不能完整的换算为二进制,这里就出现了第一次的误差。待小数都换算为二进制后,再进行二进制间的运算,得到二进制结果。然后再将二进制结果换算为十进制,这里通常会出现第二次的误差。要避免这种情况呢,通常可以将小数同时扩大相同10的整倍数,完成计算后,在去掉之前添加的整倍数。十进制数字8,用二进制...原创 2019-07-26 14:50:08 · 283 阅读 · 0 评论 -
json数组合并和去重
将图一的json转化为图二的形式,也就是在相同的id时,将keyIds拼接到一起。本人写了个呆呆的且不严谨的方法。 //一维数组去重 var arr = [] for(var i = 0 ; i< questionParams.length; i++){ arr.push(questionParams[i].id) } //将多选的...原创 2019-08-05 22:11:13 · 1709 阅读 · 0 评论 -
设置toggle
如何设置toggle时需要判断依据时,不能通过attr data-type等方式设置。可以采用隐藏标签属性设置//div层的收缩展开var btn = $('.toggle');btn.click(function () { var spread = $(this).next(".spread"); spread.slideToggle(); var text ...原创 2019-08-20 17:17:21 · 214 阅读 · 0 评论 -
layui多图片上传并限制上传的图片数量
//给图片添加删除 function mouseChange() { $(document).on("mouseenter mouseleave", ".file-iteme", function (event) { if (event.type === "mouseenter") { ...原创 2019-08-21 15:51:56 · 8235 阅读 · 6 评论 -
js每日定时请求接口
需求是每日十点请求一次接口。初始方法是写一个一分钟的轮询,定时查询系统时间,如果时间为10点就执行请求函数。但是考虑这样太浪费资源,在师傅的帮助下找到了一个更优的方法。计算当前时间和目标时间的时间间隔,如果超过,则设置定时查询的时间间隔为距离明天目标小时的距离,如果还没到就设置时间为当前时间到目标小时的距离。更优代码: /* 入参是目标时间的小时数,...转载 2019-08-30 11:18:25 · 7863 阅读 · 7 评论 -
formSelect对选中数据做操作
需求是对于多选框选中的选项做处理,列表展示出来,还能进行操作。具体需求如下:解决办法主要参考文档:https://hnzzmsf.github.io/example/example_v4.html#methods-closed但是文档的获取当前select已选中的值,出现了问题,总是比实际选中的值少一个,原因没有找到//4.0.0.0813版本之前, 受到了颇多的小伙伴吐槽...原创 2019-10-21 20:49:21 · 2210 阅读 · 0 评论 -
表单提交的问题
1. 在搜索栏时用form表单嵌套搜索项,表单内提交采用button按钮时会触发表单提交时间,ajax请求将会cancel。解决办法: 在查询事件后加上return false,执行完ajax请求之后阻止表单提交。 $('.headerBox').on('click','.searchBtn',function(){ var pageSize = $('#...原创 2019-10-24 10:53:47 · 187 阅读 · 0 评论 -
关于H5的拖拽效果
拖拽的过程:dragstart:拖拽开始时在被拖拽元素上触发此事件,监听器需要设置拖拽所需数据,从操作系统拖拽文件到浏览器时不触发此事件. ragenter:拖拽鼠标进入元素时在该元素上触发,用于给拖放元素设置视觉反馈,如高亮 dragover:拖拽时鼠标在目标元素上移动时触发.监听器通过阻止浏览器默认行为设置元素为可拖放元素. -dragleave:拖拽时鼠标移出目标元素时在目标元素上...原创 2019-10-24 18:44:41 · 727 阅读 · 0 评论 -
echarts 仪表盘进度图
实现效果如下:引用了echarts插件,代码如下:// 基于准备好的dom,初始化echarts图表 var myChart = echarts.init(document.getElementById('chart')); option = { series: [ { name: '百分比100%', t...原创 2019-12-18 16:13:47 · 2953 阅读 · 0 评论 -
浏览器获取摄像头设备列表,并选择设备
前段时候接到一个需求,新增功能:根据当前电脑绑定了几个摄像头,获取相应摄像头列表, 并选择摄像头拍摄。翻阅网上的各种资料,没有找到方法,最后借鉴了H5页面转换前后摄像头的方法,记录如下。1. 先通过 navigator.getUserMedia 调用起本地的摄像头2. 调用成功之后获取到本地电脑所有的摄像头设备列表 navigator.mediaDevices...原创 2020-04-27 13:53:06 · 7257 阅读 · 7 评论 -
H5页面判断是安卓还是ios
AndroisIos(){ let u = navigator.userAgent; let isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1; //g let isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS ...原创 2020-05-08 14:47:48 · 783 阅读 · 0 评论 -
JS函数的节流和防抖
看了一篇很形象的文章形容节流和防抖。附上链接:https://mp.weixin.qq.com/s/3FZJ0nQLhj9PCi0pfBjc9A粗暴且不是很正确的理解就是:节流主要是用于表单重复提交;防抖主要用于某个操作导致短时间内大量执行某些操作节流函数借鉴了大佬文章:https://www.cnblogs.com/yfgg/p/11663433.html function throttle (me, key, fn, delay = 1000) { let pre =原创 2020-05-15 18:39:57 · 160 阅读 · 0 评论