- 博客(78)
- 收藏
- 关注
原创 js面试题
执行异步操作的机制,实现了单线程的非阻塞和响应性。函数与其词法环境的组合处理异步操作的机制,代表异步操作的最终完成或失败,及其对应的结果值或失败原因关键字运行时绑定的在函数调用时才能确定。
2025-09-19 11:40:50
608
原创 react面试题
函数组件:主流组件,接收props(作为函数的参数),返回jsx,没有this,Hooks(让函数组件用用了类组件的功能 useState,useEffect,usemame)是在浏览器完成绘制和布局之后开始执行的,不是阻塞浏览器的渲染,应用更流畅。如果可以子组件可以更改props的化,内存地址是没有变化的,就要进行深比较了。用js对象模拟dom,状态发生变化时,先在js对象上计算和比较,找出最小差异,然后将这些差异批量更新到真实dom。数据请求,事件监听,避免阻塞渲染,提升用户体验。初始渲染,更新成本。
2025-09-19 11:40:15
660
原创 vue面试题
compositon api 是vue3的新逻辑组合方式,相较于vue2,它逻辑集中,更容易复用。入口是setup函数,推荐使用setup语法糖方式引入setup。url到组件的映射关系前端不必刷新整个页面跨组件共享数据集中状态管理响应式更新。
2025-09-19 11:37:20
754
原创 终于彻底搞明白了这道面试题,涉及事件循环,块级作用域
文章摘要:本文分析for循环中使用var和let定义变量时,结合setTimeout的不同输出结果。var因函数作用域导致循环共用同一个变量,最终输出5个5;let则因块级作用域为每次循环创建新变量,输出0-4。关键点在于作用域差异和闭包捕获机制。还提供了使用IIFE实现类似let效果的解决方案。
2025-09-16 01:29:33
396
原创 力扣 30 天 JavaScript 挑战 第41天 (第十二题)对异步操作,promise,async/await有了更深理解
这篇内容记录了解决LeetCode上"添加两个Promise"问题的完整过程。从最初的错误版本开始,逐步分析每个错误原因(如语法错误、变量作用域问题等),最终通过计数器方案实现成功。文中对比了多种解决方案,包括使用Promise.all、async/await和链式调用等方法,并详细解释了Promise的核心概念(三种状态、错误处理)和async/await语法糖的作用。最后总结了相关面试知识点,包括Promise.all的应用场景、回调地狱问题及解决方案。完整展现了从错误到正确的思考路
2025-08-27 23:42:53
1131
原创 力扣 30 天 JavaScript 挑战 第40天 (第十一题)对纯函数和记忆函数有了更深理解
本文介绍了JavaScript中记忆函数(memoize)的实现原理及应用场景。通过缓存函数调用的结果,记忆函数可以避免重复计算,提高性能。关键点包括:1) 记忆函数只适用于纯函数;2) 在Web开发中可用于缓存API调用、React组件优化等;3) 算法中常用于动态规划优化,如斐波那契数列计算。文章还探讨了记忆函数在异步场景下的应用限制,并比较了三种保持数据新鲜的方法:条件请求、WebSocket订阅和过期时间机制。最后通过代码示例展示了记忆函数的具体实现方式。
2025-08-26 22:52:17
660
原创 力扣 30 天 JavaScript 挑战 第38天 (第九题)学习了 语句表达式的区别 高级函数 promise async await 节流
then作用是:当 Promise 完成后(resolve),执行的回调函数,then里面会自动接收resolve里面传入的参数。x > 10 // 表达式,结果是 true 或 false。// return 语句。// 既是语句(赋值语句),又是表达式(返回 5)} // while 语句。fn(1, 2) // 表达式,结果是函数返回值。} // if 语句。a = 5 // 赋值表达式,结果是 5。3 + 4 // 表达式,结果是 7。
2025-08-23 22:16:24
6199
原创 力扣 30 天 JavaScript 挑战 第37天 第九题笔记 知识点: 剩余参数,拓展运算符
这篇文章介绍了JavaScript中获取函数参数长度的两种方法:使用ES6剩余参数...args和传统的arguments对象。重点分析了剩余参数的特点,包括它仅收集额外参数、在不同调用情况下的表现,以及与展开运算符的区别。文章还解释了arguments对象的自动注入机制及其类数组特性,最后通过代码示例对比了两种参数处理方式的实现。内容涵盖ES6新特性和传统方法的对比,适合学习JavaScript函数参数处理机制。
2025-08-21 21:57:38
553
原创 力扣 30 天 JavaScript 挑战 第36天 第8题笔记 深入了解reduce,this
这篇文章主要介绍了JavaScript中函数组合的实现方法。作者首先展示了自己解决该问题的错误版本和修正后的正确版本,指出错误在于循环中修改了x但返回了未修改的result。接着介绍了三种函数组合的解决方案:1)迭代方法,通过反向遍历函数数组来组合函数;2)使用Array.reduceRight方法简化代码;3)利用第三方库lodash的flowRight函数。文章还讨论了this绑定的问题,指出当组合函数依赖特定this上下文时,需要使用.call或.apply方法来显式绑定。最后提到对于纯函数(不依赖t
2025-08-20 23:32:48
958
原创 力扣 30 天 JavaScript 挑战 第五题笔记 力扣的官方题解真的是好难看懂
本文解析了力扣官方题解中关于数组转换的实现差异。主要对比了自定义map函数与原生Array.map的四个区别:1)参数传递方式不同(独立函数vs原型方法);2)回调参数数量不同(2个vs3个);3)不支持thisArg绑定;4)不处理稀疏数组的特殊情况。通过代码示例展示了如何实现更通用的排序函数,说明回调函数在算法复用中的重要性。文章强调理解这些差异对实现特定功能的需求很有帮助。
2025-08-12 17:43:30
321
原创 力扣 30 天 JavaScript 挑战 第三题笔记
本文介绍了JavaScript中实现自定义断言函数的方法。通过expect函数返回包含toBe和notToBe方法的对象,演示了如何比较值并抛出错误。文章重点讲解了三种错误处理方式:1)抛出字符串错误;2)抛出Error实例(包含message、stack等元数据);3)使用AggregateError抛出多个错误集合。这些技术可用于构建更健壮的测试和错误处理机制,特别适合参数验证和单元测试场景。
2025-08-11 17:11:52
187
原创 力扣 30 天 JavaScript 挑战 第二题笔记
本文介绍了JavaScript中的闭包概念及其应用。闭包由内层函数和引用的外层变量组成,可实现变量私有化但可能导致内存泄漏。通过计数器函数的例子,展示了闭包如何保存状态(变量n),每次调用时递增。与类相比,闭包更安全(防止变量被外部修改)但更耗内存。文末给出了一个创建计数器的闭包实现方案,每次调用返回递增的数字。
2025-08-09 22:53:52
405
原创 二分查找算法,并分析其时间、空间复杂度
本文介绍了二分查找算法的实现过程及常见错误。作者最初在计算中点索引时出现两个错误:未更新中点位置导致死循环,以及未正确处理整数除法。经过多次调试,最终正确实现为:在循环内计算中点索引Math.floor((left + right)/2),并调整边界时进行±1操作。算法时间复杂度为O(logn),空间复杂度O(1)。通过这次实践,作者认识到即使曾经掌握的算法也需要不断练习巩固。该过程展示了调试二分查找的典型问题及解决方法,对理解算法细节很有帮助。
2025-08-07 23:59:42
395
原创 力扣 30 天 JavaScript 挑战 第一题笔记
看了一下 https://developer.mozilla.org/en-US/docs/Learn_web_development/Howto/Tools_and_setup/What_are_browser_developer_tools才知道DOM 检查器中右键单击(按 Ctrl 点击)一个 HTML 元素,可以对这个元素进行多种操作。
2025-07-14 16:27:54
398
原创 Mac外接显示器鼠标移动方向错误?教你如何正确调整显示器排列顺序
在Mac连接外接显示器后,如果改变了主机与显示器的左右位置,鼠标移动方向可能会错乱。本文将详细介绍如何通过系统设置中调整显示器排列顺序,快速解决鼠标方向错误的问题,提升多屏使用体验。
2025-05-07 11:17:35
5089
原创 Vue 3 Watch 监听 Props 的踩坑记录
监听 ref/reactive 对象:可以直接使用监听 props:使用箭头函数包装需要深度监听时:添加配置。
2025-04-22 11:19:58
650
原创 git不小心将代码推送到了本地仓库解决办法以及vscode图形化使用git
如果想要重新提交使用vscode的提交按钮(vscode的提交按钮如果没有文件在暂存区回将所有工作区的文件提交到本地仓库如果暂存区有文件只会将暂存区的文件提交到本地仓库)或者git 命令(先git add将文件提交到暂存区,然后将暂存区的文件git commit到本地仓库)会显示文件仍然是“已暂存”状态。如果想要重新提交使用vscode的提交按钮或者git commit。适用于文件已经是正确的,只是提交信息有误。命令执行后,文件仍然。
2025-03-25 10:26:36
255
原创 Vue 插槽(Slots)详解
作用域插槽允许子组件向父组件传递数据,这在需要自定义列表项渲染等场景非常有用。Vue 的插槽系统提供了强大的组件内容分发机制,特别是作用域插槽的设计,让组件的可定制性大大提高。理解插槽的工作原理,尤其是作用域插槽中的数据传递机制,对于编写可复用的 Vue 组件至关重要。
2025-03-18 10:07:15
523
原创 日常踩坑 vue3 通过props传参失败原因以及解决方法附一些面试题
我的父组件为子组件为现在的问题是父组件的 {{ state.form[item.prop] }} 在页面中显示是有数据的,但是,子组件输出的没有数据。
2025-02-18 11:08:06
771
原创 HTML5 面试题
localStorage:用于在客户端永久存储数据,除非用户主动清除浏览器缓存,否则数据不会过期。sessionStorage:用于存储会话数据,在浏览器会话结束后(即浏览器关闭)数据会被清除。
2025-02-18 11:03:16
1191
原创 UniApp 面试题 超基础
uniapp是基于vue.js构建的,所以uniapp可以使用vue.js的生命周期,模版语法等。实现 每个页面都是一个vue文件 页面跳转通过uni.navigateTo、uni.redirectTo 等 API 来进行跳转。同伙uni对象 如 uni.getSystemInfo 获取设备信息,uni.request 发起网络请求等。uni.redirectTo:关闭当前页面,跳转到目标页面,适合不需要返回的场景。uni.navigateTo:保留当前页面,跳转到目标页面,适合需要返回的场景。
2025-02-18 01:02:44
681
原创 ts 非空断言
尽管非空断言可以减少类型检查,但它也会绕过 TypeScript 的类型安全机制。如果你错误地断言了一个值不会为。非空断言的作用是让你在特定情况下更有控制权,但过度使用或错误使用可能会导致问题,因此需要在确信无误的情况下使用它。非空断言是一个“强制”语法,它告诉 TypeScript 忽略。符号,它放在变量后面。是另一种手段,它是通过代码逻辑来确保变量在某个点上不会为。类型保护是更安全的方式,因为它基于代码逻辑而不是强制断言。后,TypeScript 会认为。,会导致运行时错误。
2024-11-27 21:53:47
874
原创 解决 Cannot read properties of undefined报错
错误原因:直接访问数据结构的成员时,需确保其存在。解决关键:检查数据的类型和内容,并为可能的异常情况提供保护逻辑。通过这些改进,能够有效避免TypeError,提高代码的健壮性。
2024-11-19 15:31:36
7164
原创 el-data-pick 选出的时间为2024-10-22T16:00:00.000Z样子的与期待的不符合 使用value-format解决
在发送到后端时可能会因时区自动转换引起日期错位(如显示的日期是 2024-10-22,而绑定的数据是 2024-10-23)。的字符串形式绑定,并不会因为时区问题导致日期变化。默认会返回 UTC 格式的日期时间,比如。可以让绑定的数据以标准化的格式保存。在日期选择器中,希望用户看到的是。这样设置后,当用户选择。
2024-10-28 10:13:45
1127
原创 如何在 React 中更新状态对象的某个值
在 React 中,我们经常需要更新组件的状态来反映 UI 的变化。如果状态是一个复杂的对象,比如一个包含多个筛选条件的对象,我们希望只更新其中的某个键,而不是整个状态对象。今天,我将向大家展示如何在更新状态时保留已有的数据,只修改需要更改的部分。
2024-10-20 21:46:54
1117
原创 理解 React 中的 ReactElement、children 和 ReactNode
childrenReactNode是 React 用来描述 UI 元素的对象,是不可变的。children是一个特殊的属性,用于传递嵌套的内容到组件内部。ReactNode是一个通用的类型,可以包含所有可以被渲染的内容,包括、字符串、数字、数组等。
2024-10-20 01:06:19
2105
原创 FC<PropsWithChildren<Props>>:React 函数组件的类型定义
在 React 中,FC(Function Component) 是一个类型别名,用于定义函数组件的类型。则是一个泛型接口,扩展了组件的props类型,并自动包含一个children属性。FC:表示一个函数组件的类型,接收props并返回。:用于扩展组件的props类型,自动添加一个可选的children属性。结合起来,定义了一个既可以接收props也可以接收子组件的函数组件。是一种简便的方式来定义 React 函数组件的类型,它为类型安全、自动推断children和良好的开发体验提供了许多优势。
2024-10-20 01:02:16
1451
原创 深入解析 Vue.js 的 nextTick
nextTick是 Vue.js 提供的一个全局方法,它的作用是在下一个 DOM 更新周期结束之后执行回调函数。简而言之,nextTick确保了在数据变化引起的 DOM 更新完成之后,再执行指定的代码。
2024-08-06 17:21:17
508
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅