- 博客(1519)
- 收藏
- 关注
原创 JavaScript 命名约定最佳实践
在开发过程中,遵循标准的命名约定可以提高可读性。下面就来看看 JavaScript 中命名约定的最佳实践。
2024-09-19 11:11:40 952
原创 js金额数字格式化
通过这种方式,可以使用 JavaScript 快速简单地实现金额格式化效果。需要注意的是,toLocaleString() 方法在不同的操作系统中可能存在差异,需要进行兼容性测试和兼容性处理。要格式化金额,可以使用 JavaScript 的 toLocaleString() 方法。该方法可以将数字转换为本地化的字符串表示形式,并可以指定货币符号、小数点和千位分隔符等格式。在这个示例中,通过 toFixed 使金额保留两位小数,使用正则替换的方式增加千位分隔符,再使用模板字符串进行拼接。
2023-08-18 09:18:54 818
原创 新的HTML标签 :<search>
本文介绍了一种新的元素搜索方法,并提供了一个实用的工具来帮助开发者快速找到所需的元素。这对于那些需要处理大量HTML元素的开发者来说是非常有用的。还通过提供一些常见元素的用法示例,帮助开发者更好地理解和应用这些元素。在众多元素中找到特定的元素。为了解决这个问题,文章介绍了一种新的HTML元素搜索方法。下面是正文一个新的语义元素已经加入了 HTML 标准。它代表文档中用于搜索或过滤的部分。它应该包含表单控件(如文本输入、下拉菜单、按钮等),搜索/过滤的范围可以是任何内容:从同一文档到整个互联网。
2023-06-20 20:33:38 1274
原创 async/await 函数到底要不要加 try catch ?
写异步函数的时候,promise 和 async 两种方案都非常常见,甚至同一个项目里,不同的开发人员都使用不同的习惯, 不过关于两者的比较不是本文关注的重点,只总结为一句话:“async 是异步编程的终极解决方案”。
2023-06-20 20:33:17 640
原创 为什么会出现 SETTIMEOUT 倒计时误差
setTimeout 倒计时误差的出现主要与 JavaScript 的事件循环机制和计时器的执行方式有关。
2023-06-20 20:31:13 315
原创 6 个让你少写多做的 ES6 技巧
从方法中,我们可以通过 Array.from 方法将类数组对象、arguments 对象和 NodeList 对象转换为真正的数组。findIndex() 方法返回数组中满足提供的测试函数的第一个元素的索引。是的,我们需要以“array.length-1”作为下标来读取。是的,“at”方法将成为您的魔法。当然,您可以读取数组中其他位置的元素。幸运的是,我们可以使用 Array.of 来弥补 Array 的不足。我们经常会写这样的判断语句,在满足其中一个条件的情况下做某事。初始化一个指定长度的数组。
2023-04-24 11:54:31 217 1
原创 wx.getUserProfile被回收后 小程序 如何获取头像和昵称
wx.getUserProfile被回收后微信小程序无法直接获取微信昵称和头像,可以通过新的手段获取方案如下。
2022-12-28 10:59:55 2280
原创 ES10 中 Object.fromEntries() 怎么用?
我们知道Object.entries()是将对象转成一个自身可枚举属性的键值对数组。同样,我们也可以把键值对数组转成了对象。
2022-12-27 17:36:07 784
原创 uniapp如何开启短震动、触感反馈实现
使用 uni-app 开发一款 app,需求中有一项是点击 触感反馈,查阅了 uni-app 相关文档,发现并没有对应的api,最开始尝试用“震动”的方式来模拟“触感反馈” , 但是感觉效果并不好,因为在ios中并不支持短震动(15ms), 只支持长震动(400ms)。在这里记录一下最后的处理方式。
2022-12-27 17:33:04 6106 1
原创 微信小程序如何判断是否已经订阅某条消息
判断订阅消息是否已经订阅res.subscriptionsSetting.itemSettings返回的是所有订阅消息的对象集合,'accept' 表示用户同意订阅这条消息,'reject' 表示用户拒绝订阅这条消息,'ban' 表示已被后台封禁。
2022-10-19 16:22:07 4288
原创 vue3中defineComponent 的作用
VUE3中,新增了 defineComponent ,它并没有实现任何的逻辑,只是把接收的 Object 直接返回,它的存在是完全让传入的整个对象获得对应的类型,它的存在就是完全为了服务 TypeScript 而存在的。
2022-09-21 15:15:08 2353
原创 Vue新一代状态管理插件Pinia
什么是 Pinia如果你之前使用过vuex 进行状态管理的话,那么 pinia 就是一个类似的插件。它是最新一代的轻量级状态管理插件。按照尤雨溪的说法,vuex 将不再接收新的功能,建议将 Pinia 用于新的项目。Pinia 的优点简便,存储和组件变得很类似,你可以轻松写出优雅的存储; 类型安全,通过类型推断,可以提供自动完成的功能; vue devtools 支持,可以方便进行调试; Pinia 支持扩展,可以非常方便地通过本地存储,事物等进行扩展; 模块化设计,通过构建多个存储模.
2022-05-24 11:56:49 889
原创 Omit 应用 减少 TS 重复代码
你用过 TypeScript 内置的 Omit工具类型么?你想知道 Omit 的应用场景和内部是如何实现的么?如果想的话,阅读完本文之后,也许你就懂了。这是一个使用 type 类型别名定义的 User 类型,用于描述用户对象。type User = { id: string; // 用户id name: string; // 用户名 password: string; // 密码 createdAt: Date; // 创建时间 updatedAt: Date; // 更新时间.
2022-05-24 11:51:05 2421
原创 js优雅地给对象的所有方法添加异常处理
因为没法区分方法是同步还是异步而且这两种方法的调用方式也不同,但我们可以单独提供一个 runner 方法来运行这些异步逻辑:class ExceptionsZone { static exceptionHandler = new ExceptionHandler(); static async asyncRun(callback) { try { await callback(); } catch (e) { this.ex..
2022-05-19 20:26:15 221
原创 vue-cli3的title标签中出现的htmlWebpackPlugin.options.title值进行修改
发现vue-cli创建的HTML里面的title已经换成变量<%= htmlwebpackPlugin.options.title%>,这是在webpack中使用HtmlWebpackPlugin的用法,如下:<title><%= htmlWebpackPlugin.options.title %></title>默认情况下,项目显示的标题为项目路径对应的名称,下面介绍修改htmlWebpackPlugin.options.title对应...
2022-05-19 17:44:57 11426
原创 jquery 滚动到指定div的位置
let container = $('.container') let scrollTo = $('#confirm') $('.index-container').animate({ scrollTop: scrollTo.offset().top - container.offset().top + container.scrollTop() }, 500)
2022-05-13 15:55:00 679
原创 pm2常用命令汇总
pm2是什么pm2(Process Manager 2)是具有内置负载均衡器的Node.js应用程序的生产运行时和进程管理器。它允许您永久保持应用程序活跃,无需停机即可重新加载它们,并促进常见的Devops任务。pm2特性后台运行:普通启动方式:node index.js关闭终端就结束进程,pm2可以后台运行,终端关闭不影响 日志管理:应用程序日志保存在服务器的硬盘中~/.pm2/logs/ 负载均衡:pm2可以通过创建共享同一服务器端口的多个子进程来扩展您的应用程序,这样做还允许您以零秒停
2022-05-07 10:05:53 8185
原创 如何写好代码注释?
注释的本质对于注释来说,在原则中有不同的规定或者解释。有的原则是需要使用 JavaDoc 来描写每个方法,而有的原则是要求每一个属性标注命名。我愿意相信每一份看起来不那么妥当的注释都是出于一些善意的目的,这就是注释的本质:对未能自行解释的代码做出解释。在进行代码工作的时候我们多多少少会有一些陈旧的、与业务无关的逻辑在代码中运行。有时候并不是一个变量名或者一个方法名就能阐述清楚产品同学所期望的业务内容。我们希望将代码外的逻辑也加入到其中,但是一篇长篇大论的注释似乎也不那么妥当,所以对于注释我一般会
2022-05-07 10:03:14 729
原创 Js中判断运算符和||的区别
?? 运算符是 ES2020 引入,也被称为 null 判断运算符( Nullish coalescing operator) 它的行为类似 || ,但是更严 || 运算符是左边是空字符串或 false 或 0 等 falsy值 ,都会返回后侧的值。而 ?? 必须运算符左侧的值为 null 或 undefined 时,才会返回右侧的值。因此0||1的结果为1,0??1的结果为0。相同点用法相同,都是前后是值,中间用符号连接。根据前面的值来判断最终返回前面的值还是后面的值。值1 ?? 值2
2022-05-06 15:10:14 452
原创 如何以更好的方式使用 Vue Mixins
Mixin 组件在项目中经常被用来重用一些业务逻辑,但它们有一些不确定的细微差别,这在项目开发中越来越明显。我偶尔也会遇到这种情况,它们会代码的重构或新功能的开发带来困难。在介绍我的方法之前,我想先介绍一下使用mixins的优点和缺点。优点扩展了代码重用的DRY原则。我们可以在不同的组件中重复使用相同的业务逻辑。 我们可以把 mixin 作为一个全局性的 mixin,与所有的组件共享上下文。缺点使用mixins的组件的逻辑不透明。 可重写的上下文,我们必须注意不要因为相同的名称覆盖一些
2022-04-28 16:07:56 412
原创 js获取文件名后缀
有时候我们需要通过文件名或者路径,得到该文件的后缀名(扩展名),可以通过如下几种方式进行截取。例如文件名为:var name="xxxxx.txt";方式一:subtring()使用subtring() 截取字符串,对于文件名中会出现多个点的很有用,从最后一个点的地方截取。var suffix = name.substring(name.lastIndexOf("."));//.txt/*只获取后缀*/var suffix =name.substring(name.lastIndex
2022-04-26 13:46:01 29209
原创 html5中details标签作用
html5 中新增的<details>标签允许用户创建一个可展开折叠的元件,让一段文字或标题包含一些隐藏的信息。标签定义及使用说明<details> 标签规定了用户可见的或者隐藏的需求的补充细节。<details> 标签用来供用户开启关闭的交互式控件。任何形式的内容都能被放在 <details> 标签里边。<details> 元素的内容对用户是不可见的,除非设置了 open 属性。用法一般情况下,details用来对显示在页面的
2022-04-24 12:00:10 3640 1
原创 vite 配置环境变量
在做项目环境变量配置前,可以先到官网回忆一下环境变量的基本使用,环境变量和模式 | Vite 官方中文文档一、环境模式首先环境变量是可以分模式的,常用模式如下:.env # 所有情况下都会加载.env.local # 所有情况下都会加载,但会被 git 忽略.env.[mode] # 只在指定模式下加载.env.[mode].local # 只在指定模式下加载,但会被 git 忽略默认dev环境下使用.env....
2022-04-21 14:01:07 4275 2
原创 彻底搞懂js这 5 种 for 循环
for 循环在平时开发中使用频率最高的,前后端数据交互时,常见的数据类型就是数组和对象,处理对象和数组时经常使用到 for 遍历,因此下班前花费几分钟彻底搞懂这 5 种 for 循环。它们分别为:for for ... in for ... of for await .. of forEach map一、各个 for 介绍1、forfor 循环是出现最早,也是应用最普遍的一个遍历,能够满足绝大多数的遍历。可以遍历 数组、对象、字符串,示例:// 遍历数组var arr = [
2022-04-14 16:54:09 1208 1
原创 Node.js 多文件 Stream 合并,串行和并发两种模式实现
将多个文件合并为一个文件,常见的场景是类似于大文件分片上传,事先根据一定的文件大小拆分为多个小文件上传到服务端,最后服务端在合并起来。怎么合并?一种简单的办法是使用 fs.readFile 读取,fs.writeFile 追加写入,这种方式是将文件数据先读入应用内存再写入,不是很推荐,Node.js 本身提供了 Stream 模块可以更好的处理这种场景。在 Stream 中合并文件之前一个比较常用的 api 是 pipe,但是这个 API 对于错误处理不是很友好,一不小心还能搞出文件句柄内存泄漏问题
2022-04-13 10:50:16 1432
原创 前端 一键换肤 的几种方案
现在越来越多的网站都提供了拥有换肤(切换主题)功能,如 ElementUI,既是为了迎合用户需求,或是为了凸显自己特点,因此提供了个性化定制的功能.其实之前就想了解和实现 “一键换肤” 功能,但是由于种种原因一直拖到了现在.css样式覆盖实现核心通过切换 css 选择器的方式实现主题样式的切换.在组件中保留不变的样式,将需要变化的样式进行抽离提供多种样式,给不同的主题定义一个对应的 CSS 选择器根据不同主题设置不同的样式实现下面通过 vuex 存储和控制全局的主题色
2022-04-11 09:22:36 685
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人