- 博客(70)
- 收藏
- 关注
原创 node项目前后端密码加密传输及存储方案
前端:使用crypto-js库的SHA256算法,包含用户注册时使用的邮箱加上自定义的secret key生成盐值,接着使用PBKDF2算法进行加密。最后将加密后的密码传给后端。后端:创建用户时,使用bcryptjs库的hash方法对密码进行二次加密,并存入数据库。用户登录时,再用compare方法对密码进行解密。
2025-03-02 15:38:33
433
原创 JavaScript的内存管理
JS中的引用即对象的变量。对象通过const、let或var创建对象的变量后,该变量存储在栈内存中,存储了指向堆内存中对象的指针,指针指向了该对象的内存地址,而不是像C++中的变量一样直接存储对象的内存地址。JS没有指针的概念,无法直接操作内存,但可以通过变量操作对象,间接操作内存。
2024-08-26 19:12:23
1015
原创 用银行办业务类比JS的执行机制
6、postMessage、MessageChannel和BroadcastChannel的回调:它们通常会涉及到回调和异步处理,比如使用send()和receive()方法,它们会触发相应的回调,这些回调会被浏览器放入微任务队列中等待执行,会间接影响任务队列的调度。在异步任务的事件队列中,又分为宏任务和微任务,宏任务是普通客户,微任务是vip客户,他们分别站成两个不同的队,分为宏任务队列和微任务队列。同步业务遵循后来先办的原则,因为每个新来的同步任务客户会把文件放在最上面,工作人员会先办理后来的。
2024-08-23 18:34:05
559
原创 使用vh和rem实现元素响应式布局
vh和rem都是相对单位,它们能够根据视口大小或根元素的字体大小动态调整元素的尺寸,从而实现响应式布局。这对于适应不同设备和屏幕尺寸至关重要。vh(Viewport Height):vh是一个相对单位,代表浏览器窗口高度的百分比,例如20vh就是浏览器窗口高度的20%。rem(root em):rem是通过html根元素动态计算大小的,例如根元素的字体大小是 16px,1rem就等于16px。
2024-08-19 02:46:11
268
原创 JavaScript实现面向对象编程的基本原理
JavaScript 的面向对象编程(OOP)是一种使用对象来管理代码的方式。JavaScript是一种基于原型(Prototype)的语言,但本质上还是面向对象。原型本身也是对象,可以包含属性和方法,以支持封装、继承和多态面向对象编程的核心理念。以上是JS面向对象编程的基本概念,让你更加直观地理解JS是如何创建对象,实现面向对象的。
2024-08-19 02:09:10
549
原创 浏览器发出请求到响应的过程
浏览器查看本地hosts文件是否有域名的IP地址映射,如果没有则向DNS服务器发起解析请求,获取域名对应的IP地址。:浏览器解析响应报文,根据响应内容进行相应的处理(如根据返回的JSON或HTML文档渲染页面)。:服务器接收请求,找到对应的处理程序,解析请求报文,执行业务逻辑,生成响应数据。:服务器构造HTTP响应报文,并通过TCP连接将响应报文发送给浏览器。:根据HTTP版本和连接头部信息,浏览器和服务器可能会关闭TCP连接。:用户输入URL并回车,浏览器解析URL,生成HTTP请求。
2024-08-15 20:02:16
276
原创 简单介绍BOM
BOM(Browser Object Model,浏览器对象模型)是Web开发中一个重要的概念,它提供了与浏览器交互的接口和方法。BOM不是Web页面的内容本身的一部分,而是浏览器为JavaScript提供的一个对象模型,用于访问和控制浏览器的窗口、导航、历史记录等功能。
2024-08-09 17:37:45
310
原创 简单介绍DOM
DOM将HTML或XML文档(网页)视为由多层节点(如元素节点、文本节点和属性节点)构成的结构化树(或视为一个对象),开发者可以通过JavaScript等脚本语言对这些节点进行增删改查操作。DOM的核心是document对象,它代表了整个文档,提供了访问和操作文档中每个元素和属性的接口(API)。
2024-08-09 17:21:35
275
原创 useReducer的用法
1、定义:是一个React Hook,允许你在函数组件中添加reducer以管理状态。2、作用:它提供了一种集中式和可预测的状态管理机制,尤其适用于复杂的状态更新逻辑。1、Reducer函数:一个纯函数,用于根据动作类型更新状态。它接受两个参数:当前状态和动作对象,返回新的状态。2、初始状态(可选):作为reducer的起始状态。如果没有提供,则reducer的第一次调用将使用作为初始状态。返回一个数组,包含两个元素:1、当前状态:表示应用或组件的当前状态。2、Dispatch函数:一个用于触发状态更新的函
2024-06-19 23:12:19
581
原创 react钩子函数用法(useCallback、useMemo)
的主要作用是返回一个缓存版本的函数,只有当它的依赖项发生变化时,这个函数才会被重新创建。这意味着,如果依赖项没有改变,函数的引用将保持不变,从而避免因函数引用改变而导致的不必要的重新渲染。缓存的是函数的返回值,而不是函数本身。因此,如果函数本身发生变化(例如,函数内部的逻辑被修改),即使依赖项没有变化,接受两个参数:一个是要被缓存的回调函数,另一个是该回调函数的依赖项数组。需要付出额外的开销,因为它涉及到存储和检索函数的机制。可以确保传递给子组件的回调函数引用保持稳定,从而防止不必要的重新渲染。
2024-06-19 22:59:10
766
原创 react钩子函数用法(useState、useEffect、useContext)
是 React Hooks 中的一个函数,它允许你在不使用组件嵌套传递的情况下直接访问 React 的 Context 值。第一个参数是一个包含副作用逻辑的函数,这个函数会在组件渲染后执行。4、异步操作:如果你在副作用中执行异步操作,确保正确处理异步逻辑,以避免在组件卸载后出现未处理的异步操作。是 React Hooks API 中的一个函数,它允许你在函数组件中添加局部状态。的第一个参数是一个函数,它包含了副作用的逻辑。,函数组件可以像类组件一样拥有和管理自己的状态,从而使得函数组件更加动态和可交互。
2024-06-19 22:38:05
1135
原创 js把格式为YYYY-MM-DD HH:mm:ss的时间转换为UTC时间ISO 8601格式
【代码】把格式为YYYY-MM-DD HH:mm:ss格式的时间转换为UTC时间格式。
2023-11-28 18:47:35
1090
原创 获取浏览器窗口可视区域的高度和宽度
这是浏览器窗口的内部高度,即可视区域的高度,不包括浏览器的工具栏、标签栏等非内容区域的部分。这是最常用的获取窗口可视区域高度的方法。这通常与窗口可视区域的高度相同,但是在一些情况下,可能会受到CSS样式的影响。然而,这种方法在某些浏览器和情况下可能会失效,因为。不可用,这个属性会尝试获取文档的根元素(通常是。: 如果前两种方法都不可用,这个属性会尝试获取。元素可能没有占满整个可视区域。另外,还可以计算对角线长度。解释:(以高度为例)
2023-08-22 19:24:44
2085
原创 前端项目打包报错JavaScript heap out of memory(js堆内存不足)
yarn build或者npm build出现类似以下报错。
2023-08-08 18:41:24
2204
原创 vue的v-model、v-if、v-for用react语法实现
3、遍历, 渲染出相应的Dom元素(v-for)2、判断Dom元素是否显示(v-if)1、双向数据绑定(v-model)
2023-06-26 20:00:00
773
原创 掌握这些,就能当react前端了
前端(Frontend)指的是Web开发中与用户直接交互的部分,包括用户界面的设计、用户体验以及与用户进行交互的功能实现。前端开发主要涉及使用HTML、CSS和JavaScript等技术构建网页,并通过浏览器来展示和运行。前端往往与后端(Backend)搭配工作,前端调后端的接口,并处理返回的数据,将数据显示在页面上。我目前是一名工作经验一年的前端开发工程师,学历大专,目前业余在北理工专升本,专业是计算机科学与技术。大专的专业是建筑室内设计,不转行就是在设计院工作。
2023-06-24 22:56:16
376
原创 antd的Table设置横竖溢出滚动条显示
在scroll设置y轴滚动条有时候不生效,所以直接设置表格样式,定死表格高度,纵向溢出部分显示滚动条,可以达到相似的效果。
2023-06-07 12:27:55
3860
原创 js对数组和对象的各种判断
判断对象数组中是否有属性值是数字(可用typeof 判断其他类型)判断对象数组中是否有属性值包含数字(通过正则判断)判断对象数组中是否存在年龄大于25的人。判断对象数组中的属性name是否唯一。判断对象数组中是否存在属性name。
2023-06-04 23:18:16
186
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人