- 博客(70)
- 收藏
- 关注
原创 JS中的结构体Map(哈希)用法
不同,它的键可以是任意类型(对象、函数、原始类型),且保留元素插入顺序。如果需要更专业的应用场景(如与 WeakMap 对比)或具体编程问题,可以继续提问!是 ES6 引入的一种。
2025-05-15 01:29:42
188
原创 JS中的symbol类型
JavaScript 中的 Symbol 是 ES6 引入的一种原始数据类型,具有唯一性和不可变性。每个通过 Symbol() 创建的 Symbol 值都是唯一的,即使描述相同也不会相等。Symbol 常用于替代字符串作为对象属性的键,避免命名冲突。通过 Symbol.for(key) 可以在全局注册表中创建或获取 Symbol,确保相同 key 返回同一 Symbol。Symbol 的常见用途包括作为对象属性的键、定义“私有”属性以及实现内置 Symbol 值(如 Symbol.iterator)来控制对
2025-05-12 07:14:48
917
原创 typeof 判断不同类型变量时的情况
运算符用于返回一个变量的基本类型信息,但它的行为在某些情况下可能不符合直觉。以下是不同数据类型使用。在 JavaScript 中,
2025-05-12 07:11:33
188
原创 【设计范式】为什么现代前端开发中更推荐“不可变数据”操作?——从数组操作的演进说起
尽管初期需要适应,但结合现代框架和工具链,这一模式已成为前端开发的“事实标准”。:随着 WASM、更复杂的状态管理需求出现,不可变性将与持久化数据结构(Persistent Data Structures)进一步结合,成为高性能前端应用的基石。通过这篇博文,希望你能理解不可变数据的重要性,并在项目中实践这一优雅而强大的编程范式!在异步或多线程场景中(如 React 并发模式),不可变数据能避免竞态条件下的状态冲突。直接修改原数据会导致所有引用该数据的地方同步变化,引发难以排查的 Bug。
2025-05-06 23:56:11
814
原创 从零开始创建&配置一个React项目
可能是因为 TypeScript 没有全局安装,或者你没有正确配置路径来运行 tsc。这里我们不需要全局安装,所以我们直接配置路径。需要使用 Babel 将 React 和 TypeScript 代码转换为 JavaScript。命令将ts安装为开发环境的依赖,不需要在生产环境中运行。在VSCode 中安装 EditorConfig 插件。安装TS,要先在全局安装有yarn包管理工具,tips:所有配置文件均配置在项目的根目录下。VScode中安装stylelint插件。进行TS配置,在项目根目录通过。
2024-11-01 15:25:33
2676
原创 react文档阅读笔记
比如说用了一个state存下学生信息列表,那么就不需要在用另外一个state存学生信息列表的长度。useState中可以拿到两样东西,记录的状态值和用来改变该状态值的函数,命名按照[something, setSomething]的规范。如果多次渲染MyButton组件,每一个MyButton组件中的state的是隔离的,他们拥有各自自己的state,不会相互影响。寻找它们最近并且共同的父组件——在层级结构中,一个凌驾于它们所有组件之上的组件。验证每一个基于特定 state 渲染的组件。
2024-10-30 17:20:29
1027
原创 【JS】如何识别一个变量是不是数组对象
最推荐和最可靠的方法。:非常可靠,适用于所有情况。instanceof:在大多数情况下有效,但在跨框架或 iframe 的情况下可能会有问题。检查属性:不太可靠,因为属性可以被重写。推荐使用或方法来检测一个变量是否是数组对象。
2024-10-18 18:07:28
459
原创 JS之字符串中的replace方法
replace用于替换字符串中的某些部分。可以使用字符串或正则表达式进行匹配。可以传递一个字符串或一个函数作为替换内容。使用带有g标志的正则表达式进行全局替换。
2024-10-18 17:48:36
5532
原创 JS之JSON.stringfy和JSON.parse
将 JavaScript 对象转换为 JSON 字符串。JSON.parse将 JSON 字符串解析为 JavaScript 对象。可以通过replacer和reviver函数来定制转换和解析过程。注意处理循环引用和非标准类型的特殊情况。
2024-10-18 17:44:47
595
原创 【JS、数组】flat的基本用法
flat()是 JavaScript 数组的一个方法,用于将嵌套的数组“扁平化”到指定的深度。默认情况下,flat()会将数组扁平化一层(即深度为 1)。也可以通过传递一个参数来指定要扁平化的深度。
2024-10-18 17:22:42
738
原创 leetcode刷题记录
脑细胞要死光了,只考虑到了左高右低的情况,还要改,写点简单的轻松一下。排序后判断连续:容易踩坑的点在最开始和最后面的判断与赋值。总的高度较短的个指针先往中间一动。时间复杂度O(nlog(n))水桶效益、这个需要一点数学理解。复习了一下map的基本用法。查询t是否存在在map中。通过键值拿到value值。哈希法,O(n)复杂度。
2024-10-18 17:15:33
204
原创 【转】react源码拉取-自用
https://blog.csdn.net/qq_44165263/article/details/128747309
2024-10-17 15:12:56
124
原创 【git】变更分支与主干未同步
在Git中,当你的变支与主干(通常是master或main分支)未同步时,你需要通过以下步骤来进行同步操作。假设你的变更分支名为。打开发生冲突的文件并根据需要进行编辑,以解决冲突。如果你想避免手动合并,还可以用。,这样会将你的变更应用到最新的。,以防止意外覆盖其他人的更改。分支,确保它与远程仓库同步。首先,确认你当前处于。
2024-08-02 10:09:06
556
原创 Taro之View和Block
Block:用于仅在逻辑上分组,不产生额外的 DOM 元素,不支持样式。View:用于需要实际 DOM 元素以应用样式和布局的场景,支持所有常规样式。
2024-07-31 16:58:09
621
原创 【CSS】让文字垂直居中的方法
推荐使用 Flexbox 或 CSS Grid 的方法,这两种方法不仅简单易用,而且兼容性好,适用于各种场景。方法也可以在简单的单行文本垂直居中效果中使用。如果你更加灵活地调整,你可能需要结合多个方法。通过这些方法,你可以确保文本在容器中垂直居中,并且在不同的设备和分辨率下都能保持良好的显示效果。
2024-07-31 16:33:26
5634
原创 JS之数组中的reduce方法
reduce是一个功能非常强大的高阶函数,可以用来解决各种数组操作和数据处理问题。通过理解它的工作原理和灵活运用 callback 函数,你可以编写出简洁高效且具有高度表达力的代码。
2024-07-16 17:43:27
2079
原创 decimal.js库
decimal.js是一个非常强大的库,用于高精度十进制运算。它解决了 JavaScript 中关于浮点数精度问题的常见问题,特别适用于对精度要求高的场景,比如金融计算、科学计算等。
2024-07-16 17:16:20
2373
原创 decimal.js库和bignumber.js库的比较,如何选择?
和decimal.js都是解决 JavaScript 高精度计算问题的优秀库,各有优劣。选择适合你的项目需求的库可以帮助你更好地解决浮点数精度问题,提高代码的可靠性和准确性。在需要复杂数学运算的场景下,decimal.js显得更为合适;在注重性能和包体积的场景下,则是更好的选择。
2024-07-16 17:14:51
1078
原创 JS之为什么0.1+0.2不等于0.3
在实际开发中,需要格外注意浮点数的运算误差,可以使用适当的方法来规避这些问题。要理解这个问题,我们需要了解浮点数的表示方式以及计算机内部的运算原理。为了解决 JavaScript 中的精度问题,有许多第三方库可以进行精确的十进制运算。当比较两个浮点数时,可以设置一个小的容差值来判断它们是否足够接近。计算机在进行加法运算时,将这两个近似值相加,结果并不会是确切的。的二进制表示都不是完全准确的,而是某个最接近的近似值。正如前面解释的,加法运算的结果并不是精确的。,而是一个近似的值,可能是。
2024-07-16 16:58:18
746
原创 bignumber.js库,解决前端小数精度问题
/ 创建 BigNumber 实例// 实际在前端中0.1+0.2 是不等于0.3的,原因是前端的浮点数无法精确的表示小数// 加法${// 创建 BigNumber 实例 const x = new BigNumber(0.1);// 实际在前端中0.1+0.2 是不等于0.3的,原因是前端的浮点数无法精确的表示小数 // 加法 const sum = x . plus(y);// "Sum: 0.3" // 减法 const difference = x . minus(y)
2024-07-16 16:51:54
1113
原创 JS之短路操作符
短路操作符(Short-circuit Operator)是 JavaScript 中的一个概念,这些操作符同样适用于 TypeScript,因为 TypeScript 是 JavaScript 的类型超集。短路操作符主要包括逻辑“与”(&&)和逻辑“或”(||),以及空值合并操作符(??),它们的行为在 JavaScript 和 TypeScript 中是一致的。以前只认为与和或只能用来协助判断是ture还是false,即if(a || b)的用法,但是还可以有更多的用法,如协助赋值给a。
2024-07-16 14:40:03
638
原创 JS之函数的属性
/ 添加自定义属性// 输出: "This function adds two numbers"// 输出: "1.0.0"JavaScript 函数不仅仅是可调用的代码块,它们也是对象,具备一些特殊的内建属性如lengthnameprototype以及可以自定义的属性。这些属性使得函数在 JavaScript 中更加灵活和强大,允许开发者以面向对象的方式处理函数行为和状态。理解这些属性,有助于更有效地编写和使用函数。
2024-07-16 11:45:47
508
原创 JS中对象的方括号[]和点.【对象属性的访问和设置】
在 JavaScript 中,可以使用多种方式来访问和设置对象的属性, 包括点表示法和方括号表示法。点表示法和方括号表示法点表示法:使用点号(.)来访问或设置对象的属性。方括号表示法:使用方括号([])来访问或设置对象的属性。这两种方法基本上是等价的,然而在某些情况下,方括号表示法能够提供更多的灵活性,例如属性名是变量或包含特殊字符的情况。示例代码解释const s = {};s['name'] = 'john';s.name = 'bob';这段代码执行了以下操作:创建对象
2024-07-16 10:57:17
613
原创 forEach和map的区别
都是 JavaScript 数组上常用的高阶函数,用于迭代数组中的元素。尽管它们的语法和操作方式有些相似,但功能和用例却有所不同。
2024-07-16 10:37:30
472
原创 代码随想录算法训练营第28天|回溯
调试了两次,第一是是边界值cn没有弄正确,如果初始取1的话,只有在等于5的时候才会退出,下面这个是改过了,初始取0。组合问题(分割问题)
2024-06-07 11:36:34
311
原创 代码随想录算法训练营第27天|回溯
用一个used数组来判断当前是的树枝还是在数层,然后再来判断是否要选取当前元素。如果无法理解,最好自己画个简单案例的树形图。怎么去设定参数很重要。
2024-06-06 23:11:15
394
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人