前端开发
文章平均质量分 55
前端开发学习积累
向阳花自开
前端程序媛
展开
-
js监听鼠标单击和双击事件,冲突问题处理
在浏览器中,单击事件通常会在双击事件之前触发,因此在处理单击和双击事件时,双击操作往往会先触发一次单击事件,这会导致意外的行为。要解决这个问题,可以通过延迟处理单击事件,给浏览器一些时间来判断用户是否会进行双击操作。原创 2024-08-23 17:28:19 · 546 阅读 · 0 评论 -
对象引用和对象赋值的区别
第一段代码修改了数组中的对象,因为obj是对该对象的引用。第二段代码没有修改数组中的对象,因为obj被赋值为一个新的对象,从而失去了对原对象的引用。所以,输出不同是因为对象引用和对象赋值的区别导致的。原创 2024-06-21 17:42:10 · 417 阅读 · 0 评论 -
记录一次大厂面试题
【代码】记录一次大厂面试题。原创 2024-03-12 17:58:29 · 513 阅读 · 0 评论 -
for...in 和for...of区别用法
用于遍历对象,返回对象属性的键名,如果是遍历数组返回的是数组的索引,且索引类型为string。)的集合,但是不能遍历对象,因为没有迭代器对象,但如果想遍历对象的属性,你可以用。for...of遍历数组时和forEach功能一样。遍历数组元素的值,不包含数组原型和索引。循环(这也是它的本职工作)或用内建的。适用遍历数/数组对象/字符串/原创 2024-03-12 17:30:13 · 375 阅读 · 0 评论 -
彻底搞懂回流和重绘
回流和重绘浏览器渲染页面步骤:处理HTML标记并构建DOM树处理css标记并构建CSSOM树将DOM和CSSOM合并成一个渲染树根据渲染树来布局以计算每个节点的几何信息将各个节点绘制到屏幕上回流:当Render树中部分或全部元素的尺寸、布局、隐藏等改变,需要重新计算render树当页面布局和几何属性改变时发生回流,下面一些情况会重绘:当元素的样式(color/background-color/visibility等)发生变化时触发重绘回流必将引起重绘,重绘不一定会引起回流下面一些原创 2024-03-12 09:38:46 · 511 阅读 · 1 评论 -
冒泡排序算法
我们想一下,当第一次,找到最大数,放到最后,那么下一次,遍历的时候,是不是就不能把最后一个数算上了呢?因为他就是最大的了,不会出现,前一个数比后一个数大,要交换位置的情况,所以内层 for 循环的次数,改成。实现步骤:两层循环,外层循环表示要比较多少次,内层循环,比较判断两个数,交换位置。试想一下,如果原始数组是。原创 2024-02-01 14:55:58 · 402 阅读 · 1 评论 -
npm run serve命令的一点思考
总的来说,通过本地开发服务器监听指定的端口,实现了在本地预览和开发 Vue.js 项目的功能。在生产环境中,部署到服务器时,你可以使用类似 Nginx、Apache 等服务器,通过监听端口来提供服务,实现 Vue.js 项目的正常访问。Vue.js 项目通过端口访问的实现原理主要是通过启动一个本地开发服务器来监听指定的端口,并在该端口上提供服务。通过监听的端口,开发服务器会提供一个本地服务地址,你可以在浏览器中访问这个地址来预览你的 Vue.js 项目。在开发环境中,Vue CLI 通常使用类似。原创 2024-01-18 10:54:11 · 552 阅读 · 1 评论 -
前后端身份校验机制
背景:在用户登录中通常会用到前后端身份校验这个功能,常用的有session认证机制和JWT(token)认证机制。原创 2024-01-12 13:41:27 · 504 阅读 · 1 评论 -
cookie巩固
大部分的登录需求,用的基本是cookie,一般的逻辑是前端通过用户名、密码、验证码调取后端登录接口,后端验证前端身份信息成功后会返回一个token给前端,前端将这个token存储到本地cookie里。再次请求需要验证身份的接口时从本地再拿到cookie并配置再请求头里发送给服务端(通常是放在请求头的Authorization属性上)。利用js-cookie插件实现cookie读写。原创 2024-01-11 16:26:56 · 299 阅读 · 0 评论 -
npm install 后缀说明
devDependencies 节点下的模块是我们在开发时需要用的,比如项目中使用的 gulp ,压缩css、js的模块。这些模块在我们的项目部署后是不需要的,所以我们可以使用 -save-dev 的形式安装。像 axios 这些模块是项目运行必备的,应该安装在 dependencies 节点下,所以我们应该使用 -save 的形式安装。安装到项目目录下,并在package.json文件的devDependencies中写入依赖,简写为-D。原创 2024-01-10 14:16:26 · 432 阅读 · 0 评论 -
关于新项目技术选型的一些思考
最近有个需求是做个移动端的h5页面,只有两个页面一个登录页一个首页,一直在纠结是用vue2还是用vue3,最后决定跳出舒适圈,用vue3+vant3+ts实现,目的是想挑战一下自己,另一方面也是觉得这是一个趋势,如果这个项目用的新技术,那对自己来说也多了一个核心竞争力,虽然只有两个页面,用这么多新的东西有点不值当,但从长远角度去考虑还是很有必要的。原创 2024-01-09 17:13:41 · 321 阅读 · 0 评论 -
数组合并和对象合并方法
项目中有一个下拉框,选中时会带出一个参数数组,渲染成列表,某个节点中也包含该选项的一些参数数据,当下拉框中的参数在后台发生了变化时,比如增加一个参数或者减少一个参数,那对应这个节点的属性也要保持和当前下拉框所属参数一致,只是值为空。原创 2023-12-27 12:02:26 · 440 阅读 · 1 评论 -
前端文件上传原理
文件上传原创 2023-12-20 11:51:29 · 1026 阅读 · 1 评论 -
彻底搞懂前端后端上传文件原理
背景:工作这么多年,一直觉得上传这块似懂非懂,每次开发时都是照着原有的记忆写的,但一直都觉得没搞懂原理,今天就彻底弄清楚到底是如何实现的。原创 2023-12-19 10:17:16 · 1643 阅读 · 1 评论 -
TypeScript学习笔记
子类继承父类,相当于子类拷贝了父类中的属性和方法,同时子类也可以有自己的方法和属性,如果子类中有和父类同样的方法,那么子类的方法会覆盖父类的方法,也就是重写了父类的方法。定义的类,不可以被实例化,这叫抽象类,通常用来定义被子类继承的父类,抽象类里也可以定义抽象方法,定义了抽象方法后,子类就必须重写该抽象方法。关键字则表明是静态的属性和方法,也就是类自身的属性和方法,是不可以被修改的,可以直接通过类访问,不需要通过实例去获取,没有。修饰的属性或者方法表示是类的私有的,不能在类外部访问它,只能在类内部使用。原创 2023-12-15 16:39:33 · 362 阅读 · 1 评论 -
js中string和String区别
背景:在学习typescript时,定义一个接口,其中某个属性类型为string,写成了String,发现结果是一样的。String是包装类,是基本类型string的原型,用typeof检测二者返回值不一样。根据官方 TypeScript 的。原创 2023-12-06 18:24:15 · 593 阅读 · 1 评论 -
尾调用和尾递归
尾调用优化就是指只保留内层函数的调用记录(由于尾调用是函数最后一步,所以不需要保留外层函数的调用帧了,因为调用位置和内部变量等度不会再用到了)。如果所有函数都是尾调用,那么完全可以做到每次执行时,调用记录只有一项,这将大大节省内存。调用栈:函数的调用会在内存中形成一个调用记录,存储函数的调用位置和内部变量等信息,如果函数A内部调用函数B,那么会在A的调用记录上方还会形成B的调用记录,以此类推形成了调用栈。如果尾调用自身就是尾递归,尾递归由于只有一个调用帧,因此不会出现“栈溢出”错误。原创 2023-12-12 23:44:22 · 398 阅读 · 0 评论 -
element-ui 栅格布局小坑
上下两行,上面一行的el-row没有设置gutter,下面一行因为有两列,所以设置了gutter,结果下面一行和上面一行宽度不一致了。解决方案:在设置了gutter的el-row上设置一个padding-right。原创 2023-12-06 16:22:23 · 524 阅读 · 1 评论 -
vueRoute基础
vueRoute学习笔记原创 2023-01-09 17:37:13 · 132 阅读 · 2 评论 -
js判断两个数组是否相等的方法
不能使用等号比较,因为数组是对象,对象是引用类型的,引用类型就是地址,虽然元素都一样但是地址不一样,就比如两栋外观一样的房子,地址是不一样的。原创 2023-12-13 15:25:44 · 1106 阅读 · 1 评论