- 博客(13)
- 资源 (1)
- 收藏
- 关注
原创 Async&Await
在 Node.js 里,如果你不管那些未处理的 Promise 拒绝,它会警告你。,但它们会被包装在 Promise 中,这些 Promise 是真值,所以你将得到原始数组中的所有值。你当然可以编写一个辅助函数来隐藏上下文的杂耍,但它非常难以阅读,并且对于不熟悉函数魔术的人来说可能不是直截了当的。正如我们在前一个例子中看到的,我们要么需要将这些值移动到更高的作用域,要么创建一个非语义化的数组来传递这些值。如果你想同时执行几个异步任务,然后在不同的地方使用它们的值,你可以很容易地使用。
2024-09-03 19:13:54
259
原创 每个JavaScript开发者必须知道的五大Navigator API特性
JavaScript中的Navigator API是一个强大的接口,它提供了访问广泛浏览器功能的能力。在这篇博客中,我们将探索每个JavaScript开发者都应该熟悉的Navigator API的五个关键特性,以及实用的代码示例,帮助你将这些特性集成到你的项目中。Navigator API中的剪贴板API允许开发者从剪贴板读取和写入数据,实现Web应用程序和用户剪贴板之间的无缝数据共享。权限API允许开发者查询和请求某些浏览器功能的权限,通过管理对敏感功能如位置、通知或摄像头的访问,确保更流畅的用户体验。
2024-09-02 19:58:43
170
原创 全新全网最全的NPM发包教程
这会显著简化你的设置,并避免许多同时发布CJS和ESM的陷阱,比如双包危险。如果我们的CI流程的任何部分失败,工作流程将失败,GitHub会通过在提交旁边显示一个红色的叉来通知我们。是一个检查你的包导出是否正确的工具。这很重要,因为这些地方容易出错,可能会给使用你的包的人带来问题。你可以选择添加你的电子邮件和网站。是你的包主页的URL。是人们将用来安装你的包的名称。字段告诉使用你包的程序如何找到你的包的CJS和ESM版本。是你的包的仓库URL。这在npm注册表上创建了一个指向你的GitHub仓库的链接。
2024-08-29 22:43:40
847
原创 详解 dotenv 的使用与实现
每当涉及到保护API密钥或我们不想因为开源项目而向公众展示的东西时,我们总是倾向于.env文件,而它的解析依赖到dotenv包,一个每周都有31k+开发人员下载的软件包。AES-256 表示它使用 256 位的密钥进行加密,GCM 是一种加密模式,除了加密数据,还可以验证数据的完整性。这就是为什么您的操作系统中有多个文件夹,这些文件夹是隐藏的,只能通过CLI访问,例如.ssh、.github、.vscode等。可以用于一些安全要求较高的项目中。确保 .env 文件的权限设置是适当的,以防止未经授权的访问。
2024-08-27 19:26:35
716
原创 用Zustand实现组件级状态管理的最佳实践
因为状态仓库的实例是静态的、单例的,不会频繁改变,所以将它们放到React Context中非常容易,并且不会导致不必要的重新渲染。初始设计时,这两个状态是分离的,但在某次迭代中,开发者意外地修改了购物车状态中的用户信息,从而导致状态混乱。在应用的任意部分,全局状态都可能被意外访问或修改,这使得在项目后续迭代中难以保证状态的安全隔离,甚至可能导致状态混乱。我们可以在一个页面中任意渲染这个组件,每个实例将拥有它独立的状态仓库,从而实现状态的隔离和复用。因此,在一个应用中,状态应该被分为全局状态和局部状态。
2024-08-26 09:08:20
323
原创 Zustand:状态持久化在项目中的应用
在这个项目中,我们也遇到了一个问题,在支持图片之后,存储的聊天记录里,很轻易地就超过了5M,因为GPT本质上是不支持文件的,只支持base64,聊天记录里有base64,导致几个来回之后就超过了5M。以下是其中用户配置数据的store,其他的也差不多,主要是store业务方法的完善。在combine的回调函数内部,除了通过methods函数提供的方法外,还额外添加了两个方法:markUpdate和update。这个函数,在创建store的时候,添加了一个记录更新时间的字段,并在数据更新的时候自动更新时间。
2024-08-25 06:42:48
1036
原创 再见了Try-Catch,ECMA增加安全赋值运算符提案
JavaScript 的错误处理即将获得重大升级。新的 ECMAScript 安全赋值运算符提案(?=)旨在通过减少对传统 try-catch 代码块的需求,来简化您的代码。让我们一起来看看这个提案如何简化您的错误管理,并使您的 JavaScript 代码更干净、更高效。简单示例传统的 try-catch 代码块常常导致代码深度嵌套,使得代码难以阅读和维护。提案通过引入新的运算法?= ,通过将函数的结果转换为元组来减少嵌套。如果发生错误,它返回 [错误, null];否则,它返回 [null, 结果]
2024-08-22 09:12:42
262
原创 Eric关于AI的访谈火了
划重点曾经担任谷歌CEO长达10年之久的Eric Schmidt前几天去斯坦福大学受邀计算机学院的会议,他的演讲全程各种放飞自我,中途语重心长的告诉台下学生,这场会议是保密的,自己说的那些话千万不要外传。然而,主办方对Eric Schmidt说,这场会议有摄像头正在全程直播……他的表情就凝固了。虽然斯坦福大学后来把视频从YouTube撤了下去,但已经有很多人都做了存档,Github上也有全文备份:transcripts/Stanford_ECON295⧸CS323_I_2024_I_The_Age_o
2024-08-17 20:42:09
660
原创 关于JS里的字符表情乱码
在 JavaScript 中,表情符号的 Unicode 码点超过了 BMP(基本多文种平面)的范围,因此需要特别处理这些字符。JavaScript 的 charCodeAt 方法只能返回字符的前两个字节,所以对于表情符号这样的高码点字符,需要使用 codePointAt 方法来获取完整的码点。BMP 是 Unicode 的第一个平面,包含了从 U+0000 到 U+FFFF 的字符编码。提供了一种简单且高效的方式来处理文本和二进制数据之间的转换,非常适合在需要处理不同字符编码的应用中使用。
2024-08-16 13:29:25
583
原创 关于TS的枚举,你都知道吗?
字符串枚举的行为更接近其他语言(如 C# 和 Java)中的枚举,但它们与数值枚举的不一致性可能会让人感到困惑。枚举最早在 TypeScript 的第一个版本中引入,虽然它们还没有被添加到 JavaScript 中,但它们在 TypeScript 中作为一个独有的运行时特性,展现了强大的功能和一些有趣的行为。数值枚举是一种将相关的成员组合在一起,并为它们自动分配从 0 开始的数值的机制。关键字,这种枚举在编译时会直接被替换为相应的值,不会生成任何额外的对象。相比之下,字符串枚举的行为要简单得多。
2024-08-15 09:33:00
539
原创 基于VSCode的Nodejs调试
在调试 TypeScript 或其他需要编译的语言时,使用 outFiles 可以确保断点正确映射到原始源代码,而不是编译后的代码。通过 launch.json,开发者可以定义各种调试配置,例如调试类型(如 Node.js、Chrome 等)、调试的启动参数、环境变量等。谷歌开发者工具被大家喜爱的原因是因为其调试方便,也支持实时在控制台输出,结合远程调试nodejs也确实可以做到这个。在 VS Code 中,调试控制台和集成终端实现了类似的功能,通过与调试器的交互,实现动态调试和即时反馈。
2024-08-08 09:30:09
316
原创 管理工具:nvm、volta 和 asdf
它会拦截所有对 Node.js、npm 以及你通过 Volta 安装的其他工具的调用,然后根据当前项目或全局配置中指定的版本来运行正确的二进制文件。本文将对比这三个工具,并给出一些建议。:如果你需要在 Windows 上管理 Node.js 版本,虽然有 nvm-windows,但它和原版 nvm 并不完全一致,此时 Volta 或 asdf 可能会是更一致的选择。:如果你不仅需要管理 Node.js,还需要管理其他编程语言或工具的版本,asdf 是一个非常强大的选择,它可以通过插件支持多种语言和工具。
2024-08-08 09:09:48
652
原创 数据结构---习题(C++)
1、请写出对下面序列进行快速排序的每一趟结果。46 74 16 53 14 26 40 38 86 65 27 34 答: 1、 34 27 16 38 14 26 40 46 86 65 53 74 2、 26 27 16 14 34 38 40 46 86 65 53 74 3
2011-12-11 14:32:53
588
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人