js
子义间
我很懒,什么都不想写
展开
-
js数组的常用方法
js创建一个指定长度的数组const array = new Array(9).fill(’’)数组常用的方法join():用指定的分隔符将数组每一项拼接为字符串join()方法用于把数组中的所有元素转换一个字符串,默认使用逗号作为分隔符push():向数组的末尾添加新元素push()方法从数组末尾向数组添加元素,可以添加一个或多个元素pop():删除数组的最后一项pop()方法用于删除数组的最后一个元素并返回删除的元素unshift():向数组首位添加新元素unshift()方法可向原创 2022-03-17 12:10:10 · 563 阅读 · 0 评论 -
JSON.stringify常用的特性(避坑)
特性1.undefined、任意的函数以及symbol值,出现在非数组对象的属性值中时在序列化过程中会被忽略2.undefined、任意的函数以及symbol值出现在数组中时会被转换成 null。3.undefined、任意的函数以及symbol值被单独转换时,会返回 undefinedJSON.stringify(undefined) // undefinedJSON.stringify(null) // nullJSON.stringify({val:undefined}) // {}JS原创 2021-10-11 11:33:57 · 1502 阅读 · 0 评论 -
手动实现map、filter、reduce数组循环方法
map该方法返回一个新数组,其结果是循环原始数组中的每个元素都执行提供的函数后所返回的结果,原始数组有多大,返回新的数组就有多大function map(arr, mapCallback) { // 首先,检查传递的参数是否正确。 if (!Array.isArray(arr) || !arr.length || typeof mapCallback !== 'function') { return []; } else { let result = []; //原创 2021-10-10 14:15:19 · 169 阅读 · 0 评论 -
vue项目中修改element-ui源码,如何运用到项目中 (修改 node_modules 里的文件,并应用)
由于element组件不满足项目的需要,需要对源码进行修改,如何在使用到项目中,发现直接修改源码以后不生效,原因是因为其实项目中所引用的并不是直接源码,而是通过打包好后的lib文件。源码只是相当于提供给你参考的,整个项目的运行,靠的都是lib文件夹下的打包文件。如果修改呢第一步,实现从git上拉取element的源码第二步,安装依赖 npm install,并跑起项目第三步,修改packages中的源码,再进行打包(npm run dist)最后一步,找到你的项目中的node_modules包下的原创 2021-09-09 11:56:24 · 8767 阅读 · 3 评论 -
jsPlumb使用html2canvas无法识别svg
使用VFD流程设计器图片下载问题利用html2canvas处理svg生成canvas,之后在利用canvas转成base64进行图片展示使用html2canvas对svg线条没有显示问题,实际画出的流程图为但是点击生成流程图片的时候线条却不见了原因是因为利用html2canvas处理svg成canvas时是异步进行,还没有生成出来就画canvas肯定就没有了呀解决办法这个是点击生成图片的方法 VFD流程设计器的图片生成的源码解析exportFlowPicture () { cons原创 2021-04-13 18:04:14 · 14022 阅读 · 3 评论 -
浏览器打印解决input框内容无法获取值得问题 print()
在使用浏览器的打印功能时,在DOM上,input中的值没有在元素内,只有纯文本的才可以被print();可以动态设置input的value值,实现input也可以打印出来使用vue的自定义指令来实现input的打印功能由于打印是浏览器重新打开一个html文件来实现的,所以在原页面使用的样式都是无效的,要编写打印html的时候要把css文件引入进去,或者在打印的html文件里直接写style样式,或者通过vue的data设置样式变量,在文件中引用,方法一:使用vue的自定义指令,给input绑定,在原创 2021-03-24 10:34:17 · 17533 阅读 · 2 评论 -
js实现回到顶部,以及回到指点div顶部
1. 是用锚点回到页面顶部利用a标签链接实现回到顶部<body style="height:2000px;"><div id="top"></div><a href="#top" style="position:fixed;left:0;bottom:0">我要回到顶部</a></body>2. 使用scrollTop或者scrollTo()方法<body style="height:2000px;">&l原创 2021-02-25 16:47:59 · 25138 阅读 · 0 评论 -
js实现数组对象去重(包括里面的所有属性)、判断数组以及对象中的内容是否相同
ES6有一个方法来判断两个对象是否相等console.log(Object.is(a,b))但是这个相等,和我们平时要的相等可能不一样这个方法判断的是a和b是不是同一个指针的对象比如说var a = { id:1};var b = a;console.log(Object.is(a,b)); //true但是下面这种情况就不管用了var a = { id:1};var b = { id:1}console.log(Object.is(a,b)); //fa转载 2020-05-18 16:18:38 · 25170 阅读 · 0 评论 -
事件循环机制(宏任务与微任务)
js是单线程的,按照从上往下顺序执行,js引擎线程会在适当的时候去消息队列取出消息放到栈中,顺序执行的时候,比如说鼠标点击事件会放到消息队列中,对应的回调函数会先放到消息队列中等待,比如说栈中的func2是message1消息队列的函数,就是先要把栈里的函数全部执行完才会去消息队列里拿下一个message,如此循环就是事件循环(event loop)。但是呢,消息队列里有宏任务队列跟微任务队列,有限执行微任务队列里的,把所有的微任务队列里的都执行完了才会执行宏任务队列里的。原创 2020-04-18 16:42:33 · 255 阅读 · 0 评论 -
js的一些简单算法(包括一些经典力扣,持续解题)
//判断str是否有数字function strnum(str) { var a1 = new RegExp('[0-9]') var new_str = a1.test(str) return new_str}//计算两个数相乘的值,未知小数(求精度)function num(a, b) { var a1 = a.toString(); var...原创 2020-02-18 23:07:37 · 1465 阅读 · 1 评论 -
简简单单的学会闭包
闭包就是fn2,能读取其他函数内部变量的函数(定义在函数内部的函数)var a = 123;var fn1 function(){ var b = 234 function fn2(){ console.log(b) } return fn2}var res = fn1()res()闭包特点:闭包就是函数内部跟函数外部链接的一座桥梁用途:可以做一个计数器作用:读取函数...原创 2020-02-12 15:01:21 · 11448 阅读 · 0 评论 -
事件委托
看百度事件委托https://blog.csdn.net/z69183787/article/details/54019756或https://www.cnblogs.com/ranyonsue/p/6780795.html原创 2020-02-14 11:57:39 · 196 阅读 · 0 评论 -
原型跟原型链 、prototype跟proto
1.原型跟原型链每个对象都有一个原型对象,对象是以其为模板,从原型继承方法和属性。原型对象也有原型,并从中继承方法跟属性,一层一层,这种关系就是原型链。这些属性跟方法是定义在object的构造函数的prototype属性上的,而非对象实例本身。在传统的面向对象语言中,是通过定义一个类,此后创建对象的实例,类中定义的属性跟方法都复制到实例中,而js中并不是这样复制的,而是通过在对象实例和他的构造...原创 2020-02-21 11:11:09 · 8874 阅读 · 0 评论 -
js懒加载的实现
懒加载其实就是减少一次性对服务器请求资源,导致性能降低的解决方法,比如说商品加载的时候由于商品图片太多,如果一次性加载的话,会导致网页加载慢,从而用户体验差,懒加载原理其实就是在img标签里创建一个data-xxx的自定义属性,这个自定义属性存放的就是真实的img网络路径,而所有图片的src则存放一张空白页,这样子一开始加载页面的时候,只需要访问一次即可,当滚动条滚到图片到可视区域的底部时,则...原创 2019-10-15 11:24:51 · 364 阅读 · 0 评论 -
exports跟module.exports区别
exports===module.exports相当于jsvar obj={ a:12} var obj1=obj//他们两个指向同一个对象;操作任何一个都可以改变对象里的值,如obj1.a=45console.log(obj.a)//45obj.a=78console.log(obj1.a)//78//当给obj1或obj重新赋值时,其他们两个的引用关系就打破了,就不再是同...原创 2019-08-30 14:19:32 · 160 阅读 · 0 评论 -
promise语法及回调
一般new一个promise容器,promise容器里有三个状态,但是每次只能存在一个状态,即下面图片的三个小圈,pending正在执行,resolve是成功的,reject是失败的成功后就把data传到resolve这个状态中then里的第一个function就是resolve,第二个function就是reject代码图示:then(function(){return aa...原创 2020-03-18 17:00:34 · 391 阅读 · 0 评论 -
vue中实例拿实例外部的数据以及外部拿vue实例中的方法跟数据
vue实例拿实例外部的数据直接可以拿var aaaa='我是外部的数据'var vm = new Vue({ el: '#app', data: { mas:"sdsdsad", aaa: 123456, flag:true, }, methods: { test(){ a...原创 2019-08-28 09:46:18 · 2822 阅读 · 0 评论