![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
js
外围前端吴彦祖
彦祖们别卷了,我害怕
展开
-
一个惊为天人的验证思路(验证数学公式是否正确)
前端验证一个数学公式是否正确原创 2023-10-20 17:24:55 · 140 阅读 · 0 评论 -
加深我对typeScript的印象(&、|、Partial、Required、Pick、Omit)
加深我对typeScript的印象(&、|、Partial、Required、Pick、Omit)原创 2023-10-20 16:31:29 · 152 阅读 · 0 评论 -
使用钉钉的扫码会出现多个回调(DTFrameLogin)
h5使用钉钉进行扫码,特定条件下会执行多次扫码的回调函数,附解决方案原创 2023-08-24 15:52:35 · 2401 阅读 · 2 评论 -
viewerjs 如何新增下载图片功能(npm包补丁)
viwerjs 如何新增下载图片功能(npm包补丁)原创 2023-08-04 14:26:50 · 1624 阅读 · 0 评论 -
vue项目优化问题
前端项目性能优化原创 2023-07-12 17:35:30 · 879 阅读 · 0 评论 -
给你的路由跳转点缀一些动画吧(路由跳转动画)
官方说明地址:https://cn.vuejs.org/guide/built-ins/transition。1、利用transition标签进行实现(Vue3 )。router_animate.js 文件。router/index.js 文件。/* 路由切换动画 */2、路由前置守卫执行动画。/* 路由跳转动画 */官网地址:https。原创 2023-06-13 10:56:59 · 756 阅读 · 0 评论 -
别再说前端导出excel麻烦了(xlsx插件用法)
别再说前端导出excel麻烦了(xlsx插件用法)原创 2023-03-10 10:51:13 · 2689 阅读 · 1 评论 -
电子签名?玩具罢了!(web前端)
电子签名?玩具罢了!(web前端)原创 2023-03-06 15:18:06 · 2706 阅读 · 5 评论 -
不是,到底有多少种图片懒加载方式?
不是?阿sir,到底有多少种图片懒加载方法?原创 2023-02-28 15:02:04 · 2015 阅读 · 1 评论 -
uniapp开发遇到的问题
uniapp开发遇到的问题原创 2023-02-11 14:21:40 · 165 阅读 · 0 评论 -
手写组件--多选框(checkbox)
手写组件--多选框(checkbox)原创 2023-02-08 20:42:19 · 961 阅读 · 0 评论 -
手写组件--dialog模态框
手写组件--dialog模态框原创 2023-02-04 20:09:01 · 960 阅读 · 0 评论 -
Proxy
Proxy原创 2023-01-03 14:52:45 · 125 阅读 · 0 评论 -
写代码不加‘;‘有什么坏处吗?
写代码不加';'有什么坏处吗?原创 2022-12-16 14:04:17 · 448 阅读 · 0 评论 -
谈一个谈这几个月的收获
近三个月的收获总结原创 2022-12-01 11:37:05 · 398 阅读 · 0 评论 -
杂七杂八的知识(动态路由、响应式丢失、双向通讯......)
杂七杂八的知识(动态路由、响应式丢失、双向通讯......)原创 2022-10-25 16:03:34 · 324 阅读 · 0 评论 -
8月份的个人开发总结(技巧)
四周的开发总结原创 2022-08-24 20:33:38 · 336 阅读 · 0 评论 -
javascript之策略模式(用于个人理解)
js设计模式的策略模式原创 2022-06-10 16:08:11 · 99 阅读 · 0 评论 -
每天一个手写--图片懒加载
{ let el = document.querySelectorAll("img") el = [...el] function fn() { el.forEach((it, index) => { let bot = it.getBoundingClientRect() if (bot.top < 100) { it.src = it.dataset.src // el = el.filter((it, ind) => !el.in原创 2022-05-30 10:21:34 · 96 阅读 · 0 评论 -
ts的接口和类的区别、js中设计模式
接口1、一般用来定义数据结构,因为ts中的interface不同于其它强类型语言的一点是,interface中可以定义变量,这就使得interface还可以充当一些model对象的基类使用,而并非通常的用来定义一些行为。2、接口只声明成员方法,不做实现。类类声明并实现方法,面向对象编程常见的设计模式有单例模式工厂模式观察者模式发布订阅模式策略模式代理模式迭代器模式……等等很多这个大哥写的设计模式文章很好...原创 2022-05-28 10:07:19 · 615 阅读 · 0 评论 -
函数柯里化
柯里化,是函数式编程的一个重要概念。它既能减少代码冗余,也能增加可读性。另外,附带着还能用来装逼。先给出柯里化的定义:在数学和计算机科学中,柯里化是一种将使用多个参数的一个函数转换成一系列使用一个参数的函数的技术。 { function fn(a, b, c) { return `a=${a}b=${b}c=${c}` } console.log((fn(1, 2, 3))); } { //柯里化 function fn(a) { let srt = `a=${a}`原创 2022-05-15 12:11:35 · 121 阅读 · 0 评论 -
揭开跨域的核心
什么是跨域正常情况下,如果我们通过ajax去请求另一个域下的资源时是不会成功的,浏览器默认会阻止这种行为,因为它违背了浏览器的同源策略。什么是同源策略简单来说就是指 协议 + 域名 + 端口 三者相同如何解决跨域1.代理服务器(最常用方法)因为服务器之间是没有跨域请求的2.jsonp3.服务端cors4.如果请求的是一些图片文字资源,可以直接...原创 2022-05-13 08:00:11 · 126 阅读 · 0 评论 -
每天一个手写--模板字符串
function fn(str, obj) { const reg = /\{\{(\w+)\}\}///匹配所有{{}}形式的内容 let dat = '' if (reg.exec(str)) { let nam = reg.exec(str)[1] str = str.replace(reg, obj[nam]) fn(str, obj) } else { return dat } } //测试 let template = '原创 2022-05-12 09:37:58 · 228 阅读 · 0 评论 -
每天一个手写--forEach
function fn(callen, arr) { let k = arr.length //获得数组长度 // console.log(k); let o = 0; while (o < k) { callen.call(arr, arr[o]) o++ } } fn((re) => { console.log(re); }, [1, 2, 3, 4, 5, 6])//测试可以对上面的代码进行更一步的优化,列如:对传递的值类型进行..原创 2022-05-11 09:08:30 · 117 阅读 · 0 评论 -
每天一个手写--promise
最简单的版本,只有一个简单的异步处理,并没有链式调用、抛出错误处理等等下面的复杂版本其实就是根据简单版本,一点点向外扩展而来的 let states = { statr: 'log',//等待状态 succ: 'success',//成功状态 fail: 'fail'//失败状态 } class pro { constructor(fn) { this.sta = states.statr this.val = null fn(this.succ,原创 2022-05-10 10:07:29 · 136 阅读 · 0 评论 -
每天一个手写--js实现图片懒加载
1.模块,个人理解就相当于,把一个完整的东西,分成多个部分(模块),每个部分都是一个独立的功能,每个模块之间没有关系,这样做最大的好处就是大大提高了代码的可维护性(一个模块有问题,不会影响其它模块的运行),其次是提高代码的可复用性,而且使用模块还可以避免函数名和变量名的冲突。2.内置模块有fs、url、http、、3.像http模块创建服务器,我们一般不用(现在大部分都用express第三方模块),了解即可。4.url现在进行了变更,他不像寻常的模块用require来导入模块,url被直原创 2022-02-19 09:30:10 · 295 阅读 · 0 评论 -
每天一个手写--数组扁平化处理(flat)
function fn(arr) { var dat = [] for (var i = 0; i < arr.length; i++) { if (arr[i] instanceof Array) { dat.push(...fn(arr[i])) } else { dat.push(arr[i]) } } return dat } console.log(fn([1, [2, [3, [4, 5, 6, [7, 8, 9.原创 2022-05-09 09:05:42 · 133 阅读 · 0 评论 -
每天一个手写-call()
Function.prototype.tjq = function (context) { var context = context || window;//默认值 context.fn = this;//this,谁调用指向谁 console.log(this instanceof Function);//在这里this是函数,这里可以输出看一下 var args = []; let arr = new Array(...arguments)//这一步把类数组转为数组 var .原创 2022-05-07 10:12:07 · 293 阅读 · 0 评论 -
内存泄漏,每天一个手写--new关键字
什么是内存泄漏内存泄漏是指不再用的内存没有被即使释放出来,导致该段内存无法被使用就是内存泄漏为什么会导致内存泄漏内存泄漏值我们无法通过js’访问某个对象,而垃圾回收机制却认为该对象还在被引用,因此垃圾回收机制不会释放该对象,导致该块内存永远无法释放,积少成多,系统会越来越卡以至于崩溃垃圾回收机制有哪些策略标记清除法、引用计数法手写new关键字 { function fn() { let obj = new Object() let fn2 = [].shift.apply(原创 2022-05-06 14:00:11 · 294 阅读 · 0 评论 -
js中节流和防抖
js中节流和防抖1.含义节流:一个事件可以连续多次触发,一定时间段内,让该事件处理函数只会执行一次的方法就叫节流防抖:持续触发事件时,一定时间段内没有再触发事件,事件处理函数才会执行一次2.个人理解:节流很好理解就是节约内存,让事件不能连续无间断的触发.防抖,尽量不影响用户体验又能减少事件触发的次数防抖:举个例子,玩游戏挂机的判定就是防抖,你一段时间没有操作就会触发挂机事件,你只要动一动就不会触发这个事件。3.实现方法//防抖 var input = document.querySelec原创 2022-02-23 08:58:48 · 370 阅读 · 0 评论 -
js将input:file标签获得的图片弄一个临时链接来保存,用于个人
input.onchange=function(){var a=input.files[0]var url=URL.createObjectURL(a)}此时input元素一定要是change事件,利用URL.createObjectURL()来将获得的第一个图片设一个临时路径原创 2021-12-28 23:10:39 · 1179 阅读 · 0 评论 -
js中offset、client、和style的区别,用于个人复习
1.offset和clientoffsettWidth 获取的是元素宽度(包括边框)clientWidth 获取的也是元素的宽度(不包括边框)offsetLeft 获取的是该元素离上级元素(上级元素是设置了定位的)左边距离clientLeft 获得的值是该元素的左边框大小offsetTop 获取的值是该元素距离上级元素(上级元素是设置了定位的,没有就是body)上方的距离clientTop 获取的值是该元素上边框的大小2.offset和styleof...原创 2021-12-17 11:34:28 · 404 阅读 · 0 评论 -
盘点js所有的触发事件
1.鼠标事件鼠标在元素上移动 mousemove 鼠标从该元素上移出 mouseout鼠标移动到该元素 mouseover鼠标点击(单击) click鼠标双击 dbclick鼠标右击 contextmenu 可以配和event的preventDefault()方法来禁用鼠标右击2.键盘事件键盘按下 keydown键盘按下 keypress 区别于keydown keydown不能识别键盘大小写,而keypress不能...原创 2021-12-17 10:56:29 · 1375 阅读 · 0 评论 -
函数的参数argument常见的属性
arguments不是个数组,但是它却有索引值,也有长度,也可以通过索引值修改或删除参数。1.arguments.callee() 返回此函数,可以应用在回调函数的递归中。2.arguments.length()返回参数的个数原创 2021-12-17 10:29:13 · 197 阅读 · 0 评论 -
js中break、countiun、return、clearintercal clearTimeout的区别
return用在函数,退出函数(函数后面的代码不会执行),并返回一个值,没有返回值的话就返回undefinedbreak,countiune用在循环,break退出循环,continue是跳过当前一个的循环,直接执行下一个循环clearinterval,终止定时器(setinterval),不影响函数后面的代码执行cleartimeout,终止定时器(settimeout),不影响函数后面的代码执行...原创 2021-12-16 21:17:43 · 623 阅读 · 0 评论 -
js的数据类型(以及类型判断方法)
基本数据类型 :字符串、number、undefined、null、Boolean引用类型:object类型判断方法一:typeof() 括号里面填写需要判断类型的数据名typeof(undefined) 判断为undefined类型typeof(NaN) 判断为数字类型(number)typeof(null) 判定为Object类型typeof(数组类型的数据) 判定为Object类型因此可以看出typeof有一定局限性,只能分辨出来基本类型、和对象类型。类...原创 2021-12-10 21:29:02 · 254 阅读 · 0 评论 -
js数据类型的隐式转化(个人目前遇见的)
1.字符串类型+数字类型=字符串类型2.字符串类型 - / * (3种) 数字类型=数字类型3.布尔值 + 字符串类型=字符串类型 列如:true+"true"=truetrue4.布尔值 与数字类型进行加、减、乘、除=数字类型 列如:true+1=2 会把true转为1,false转为05.isNaN() 判断是否是NaN类型 会先把字符串转为数字类型进行判断5.布尔值 与布尔值 之间进行加、减、乘、除=数字类型 列如:true+true=2 会把true转为1,...原创 2021-12-10 21:15:12 · 427 阅读 · 0 评论 -
学习前端的网站有哪些?
1.CSDN很强的学习网站CSDN - 专业开发者社区CSDN是全球知名中文IT技术交流平台,创建于1999年,包含原创博客、精品问答、职业培训、技术论坛、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区.https://www.csdn.net/2.菜鸟教程,看名字,这是新手很好起步的网站,学完你也能成为大牛。菜鸟教程 - 学的不仅是技术,更是梦想!菜鸟教程(www.runoob.com)提供了编程的基础技术教程, 介绍了HTML、CSS、Javascript、Python...原创 2021-11-25 23:02:47 · 1093 阅读 · 0 评论 -
js常用的操作节点,猴子都能学会的方法
个人理解:首先要明白,节点分为:文字节点、元素节点、属性节点1.创建元素节点 document.createElement("需要创建的元素节点名称")2.创建节点之后,就需要将节点添加到文档里面 我们使用appendChild()把一个新元素插入到父元素的内部子元素的末尾我们可以使用insertBefore()方法将一个新元素插入到父元素中的某一个子元素的前面。var div=document.createElement("div")inp.appendChild(div).原创 2021-11-25 22:56:53 · 951 阅读 · 0 评论 -
js最常用的语句
每天厕所偷偷看文章,卷爆他们个人理解1.for循环<script> for (var i = 0; i < 10; i++) { console.log(i); }</script>一般用来遍历,上述代码,控制台输出(0~9)因为有i++所以for会一直循环,直至不在满足中间的条件i<102.if语句就是个判断语句...原创 2021-11-22 16:44:21 · 478 阅读 · 0 评论