自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 最全面试题

1.统一管理:将所有的action-type常量集中管理,可以创建一个单独的文件或模块,用于定义和导出所有的action-type常量。这样可以确保所有的action-type常量都在同一个地方定义,避免重复定义。2.命名空间:在定义action-type常量时,可以使用命名空间来避免重复。3.唯一性检查:可以编写脚本或工具来检查所有的action-type常量,确保没有重复定义。可以通过遍历所有的定义文件,检查常量的唯一性,并给出警告或错误提示。

2023-08-18 16:03:35 52

原创 react实现购物页面领取红包优惠 实现梯形盒子

【代码】react实现购物页面领取红包优惠。

2023-08-17 09:52:35 59

原创 实现一个 myMap,方法,可以跟数组 map 方法一样,可以进行数组循环并且,可以返回新的数组

/ 输出: [2,4,6,8,10]

2023-08-16 22:04:14 59

原创 typescript 中都有哪些修饰符,说明他们的作用

5.static: 静态修饰符,表示成员属于类本身,而不是类的实例。3.protected: 受保护的修饰符,表示成员可以在类内部和子类中访问,但在类外部无法访问。4.readonly: 只读修饰符,表示成员只能在声明时或构造函数中被赋值,之后无法再修改。1.public: 默认的修饰符,表示成员是公共的,可以在类内部、子类和类外部访问。2.private: 私有修饰符,表示成员只能在类内部访问,子类和类外部无法访问.在 TypeScript 中,类的修饰符用于控制类成员的可访问性和可继承性。

2023-08-16 22:03:10 92 1

原创 interface和type的区别?

对象和函数类型:interface 主要用于定义对象类型,可以描述对象的结构和方法签名。type 可以定义对象类型、联合类型、交叉类型等,并且还支持更高级的类型操作。可读性:interface 声明的类型在错误信息和文档中更易读,因为它们提供了更清晰的结构和描述。实现和继承:interface 可以被类实现(implements)和接口继承(extends),而 type 不支持类的实现和继承。interface 适用于定义对象的结构和方法,type 适用于定义更复杂的类型、联合类型和交叉类型。

2023-08-15 21:17:27 199 1

原创 函数重载的理解?

在上述示例中,定义了两个名为 add 的函数,一个接受两个 int 类型的参数,另一个接受两个 double 类型的参数。函数重载是指在同一个作用域内,可以定义多个具有相同名称但参数列表不同的函数。当调用该函数时,编译器根据传递的参数的类型、个数或顺序来确定具体调用哪个函数。通过给不同的函数赋予相同的名称,可以使代码更加直观和易于理解,同时也可以减少命名冲突。函数重载的实现需要编程语言的支持,在编译器处理函数调用时,会根据传递的参数类型和个数来匹配最合适的函数。

2023-08-15 21:03:17 153 1

原创 如何使用css实现一个三角形,写出两种以上方案得满分

使用了 border 属性来绘制三角形, 设置 width 和 height 为 0,设置 border-left 和 border-right 为相同的长度,以及 border-bottom 为需要的高度,可以创建一个等腰三角形。方案一:使用 border 属性。

2023-08-14 21:26:41 35

原创 说说 React 生命周期有哪些不同的阶段? 每个阶段对应的方法是

componentWillMount: 在调用 render 方法之前调用,并且在初始挂载及后续更新时都会被调用。shouldComponentUpdate():用于控制组件重新渲染的生命周期,state发生变化,组件会进入重新渲染的流程,在这里return false可以阻止组件的更新。​ componentWillReceiveProps: 在接受父组件改变后的props需要重新渲染组件时用到的比较多,外部组件传递频繁的时候会导致效率比较低 ​。(3)卸载或销毁阶段: ​。

2023-08-14 21:25:10 25

原创 面试题813

实现原理:中间件的实现原理基于redux的dispatch机制,在react中,当一个action被dispatch时,会依次经过中间件链中的每个中间件进行处理,每个中间件都会对action进行拦截,修改,延迟处理等操作,并将处理结果传递给下一个中间件,直到最后一个中间件将结果传递给redux的reducer进行状态更新。库,核心思想是组件化,它将用户界面拆分成一个个独立的组件,每个组件都有自己的状态和属性,通过组件的组合和嵌套,构造出一个复杂的用户界面。

2023-08-14 07:45:50 33

原创 如何通过原生js 实现一个节流函数和防抖函数,写出核心代码,不是简单的思路

节流函数防抖函数。

2023-08-14 07:38:21 45

原创 说说javascript内存泄漏的几种情况

JavaScript 内存泄漏是指不再需要的内存仍然被占用,无法被垃圾回收器回收,导致内存占用持续增加,最终可能导致应用程序的性能问题。未及时清理的定时器和回调函数。未被释放的 DOM 引用。

2023-08-14 07:32:58 27

原创 react根据出生年份计算年龄

2023-08-11 17:22:07 98 1

原创 react刷新显示当前日期

2023-08-11 17:20:45 46 1

原创 react找出数组[1,2,3,4,5,3,2,2,4,2,2,3,1,3,5] 中出现次数最多的数,并统计出现多少次,编写个函数?

2023-08-10 21:35:00 38 1

原创 React性能优化的手段有哪些?

如果是类组件,使用 shouldComponentUpdate(这是在重新渲染组件之前触发的其中一个生命周期事件)生命周期事件,可以利用此事件来决定何时需要重新渲染组件;使用 React.memo 进行组件记忆(React.memo 是一个高阶组件),对 于相同的输入,不重复执行;不要使用内联函数定义(如果我们使用内联函数,则每次调用“render”函数时都会创建一个新的函数实例);在函数组件中使用useCallback和useMemo来进行组件优化,依赖没有变化的话,不重复执行;避免使用内联样式属性;

2023-08-10 21:33:14 27 1

原创 扩展运算符都有哪些作用,详细介绍一下

4.可以克隆对象: string、number、boolean时属于深拷贝,object、Array时,属于浅拷贝: obj1={foo:bar',x:2cloneobj=[...obj1}(foo:bar',x:2))3.合并数组: arr1=[1,2,3] arr2=[4,5,6][...arr1,...arr2](1,2,3,4,5,6)2.可以进行数组浅拷贝:arr=[1,2,3] arr2=[...arr](1,2,3)1.可以构造数组 :[1,...[2,3]]---[1,2,3]

2023-08-09 21:05:26 34

原创 Redux实现原理

通过store的dispatch方法发出一个action用于修改值,可以理解为告诉redux我们准备做的事)在reducer中接收发出的值,通过return 返还最新的值redux接收到新的state对象后,通知store.subscribe0函数执行。Redux是将整个应用状态存储在一个公共的store文件中,组件可以派发(dispatch)行为(action)给公共store,而不是直接通知其他组件,组件内部通过订阅store中的状态state来刷新自己的视图。

2023-08-09 21:04:30 34

原创 对自定义hook的理解,模拟简易版的useState

自定义Hook本质上只是一种函数代码逻辑的抽取。可以看做是 React Hooks 的之外的自由延伸。定义了一个 useState 函数,接收一个初始值作为参数。使用闭包,创建了一个局部变量 state,并将初始值赋给它.然后,定义了 setState 函数,它接收一个新的值作为参数,并将 state 更新为新的值。最后返回一个数组,包含 state 和 setState,使其可在组件中使用。使用场景:封装可复用的逻辑、监听数据的状态、拆分复杂的逻辑。它与普通函数的区别在于普通函数中不可以调用hooks。

2023-08-08 20:20:33 66

原创 封装一个使用递归方式的深拷贝方法deepClone

如果是,则直接返回。如果是对象或数组,则创建一个新的空对象或数组作为克隆对象。然后遍历原对象的属性,通过递归调用。这个方法能够处理普通对象、嵌套对象、数组以及嵌套数组等情况,并能正确处理引用关系,确保拷贝的对象与原对象完全独立。方法来深拷贝每个属性的值,并将其赋值给克隆对象对应的属性。方法使用递归的方式实现深拷贝。它首先判断传入的参数是否为基本类型或者。

2023-08-07 20:29:20 79 1

原创 面向对象编程的方式的理解

它的核心思想是将程序中的数据和对数据的操作封装在一起,形成对象。对象是一个具有特定属性和方法的实体,可以通过调用对象的方法来实现对数据的操作。2.继承:继承是指通过定义一个类(父类/基类),从中派生出其他类(子类/派生类),子类继承了父类的属性和方法,并可以在此基础上进行扩展和修改。1.封装:封装是指将数据和对数据的操作封装在对象中,通过访问权限控制,只暴露必要的接口给外部使用,隐藏内部实现细节。2.可复用性:通过封装和继承的机制,将代码进行复用,减少了重复编写代码的工作量。

2023-08-07 19:28:36 53 1

原创 js类型检验的方式

4.typeof null 特殊处理:由于历史原因,typeof null 返回 "object",而不是 "null"。因此,如果要检验一个变量是否为 null,可以使用相等运算符进行判断,例如,value === null。5.使用第三方库:还可以使用第三方库,如 lodash、Joi、Prop-types 等,来进行更复杂的类型检验和验证。1.typeof 运算符:typeof 运算符可以用来检验变量的类型,返回一个表示变量类型的字符串。

2023-08-06 19:50:55 95

原创 事件循环的理解,以及应用理解

它是一种在单线程上实现并发的方式,通过循环不断地从事件队列中取出事件,并按照一定的顺序进行处理。当事件被取出并处理时,可能会触发其他的异步操作,这些操作也会被封装成事件并放入事件队列中。这样,事件循环就可以不断地处理事件,实现异步执行的效果。1.前端开发:在前端开发中,事件循环被广泛应用于处理用户交互事件、网络请求、定时器等异步操作。通过事件循环,可以实现非阻塞的I/O操作,提高服务器的性能和并发处理能力。通过将任务封装成事件并放入事件队列中,可以实现非阻塞的异步执行,提高程序的响应速度和并发处理能力。

2023-08-06 19:36:25 69

原创 对闭包的理解,优点缺点,以及它的应用场景

闭包是指一个函数内部定义的函数,并且函数内部可以访问外部函数的变量。闭包包含两部分:内部函数和内部函数所在的环境(及外部函数的变量)2.延长变量生命周期:闭包可以使得外部函数中的变量在外部函数执行完毕后仍然存在,从而延长了变量的生命周期。2.回调函数:闭包可以用于实现回调函数,将函数作为参数传递给其他函数,并在其它函数执行完毕后调用闭包函数。1.保护数据:闭包可以将变量封装在内部函数中,只能通过内部函数访问,从而保护数据的安全性。

2023-08-06 19:12:58 60

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除