- 博客(226)
- 收藏
- 关注
原创 JS深度踩坑:Boolean()和!!双感叹号90%前端都会错的隐藏bug
JS深度踩坑:Boolean()和!!双感叹号90%前端都会错的隐藏bug
2026-06-05 10:33:56
276
原创 JS详解:Boolean()与!!双感叹号的区别、用法、底层原理(前端必看)
在日常 Vue、UniApp、原生 JS、TS 开发中,我们经常需要把任意数据类型(字符串、数字、null、undefined、对象)强制转为 true / false。- Boolean(变量) 原生构造函数转换!变量 双感叹号简写转换很多人以为两者有 bug 差异、或者一个是 TS 语法、一个是 Vue 语法,其实全部是原生 JS 语法,和框架无关。本文一次性讲透:等价性、底层原理、写法区别、团队规范、实战踩坑。Boolean() 和!!
2026-06-05 10:20:02
214
原创 HBuilder X 运行项目不显示 Network 地址问题分析与解决
HBuilder X 不显示 Network 地址通常是由网络适配器配置问题引起的,特别是虚拟网卡(如 Meta Tunnel)的干扰。通过禁用不必要的虚拟网卡、正确配置 devServer.host 和使用非特权端口,可以解决大部分问题。禁用所有不必要的虚拟网卡修改端口为 8080 或其他非特权端口设置 host: ‘0.0.0.0’重启开发工具重新运行项目按照上述步骤操作,95% 的情况可以解决问题。如果问题依旧,建议检查系统网络驱动或考虑重装网络适配器驱动程序。
2026-01-13 10:21:06
1198
原创 Vue + Element UI 实现复选框删除线
通过:not()使用选择未选中的复选框应用添加删除线使用opacity降低透明度增强视觉效果添加transition实现平滑过渡这种设计模式不仅美观,而且能显著提升用户体验,让用户清楚地知道哪些选项被包含或排除。
2026-01-07 15:50:29
701
原创 前端获取二进制文件并预览的完整指南
前端二进制文件、Blob、PDF预览、文件下载、axios blob、URL.createObjectURL
2026-01-07 15:37:02
1100
原创 uniapp做的APP和安卓苹果做的什么区别
核心区别:Uniapp是“一次开发多端部署”的跨平台框架,安卓(原生Java/Kotlin)、苹果(原生Swift/Objective-C)是单独开发的原生APP,核心差异集中在开发效率、性能体验、适配灵活度上。
2025-12-03 23:07:35
729
原创 JavaScript 的try使用方法和应用场景
中强大的错误处理机制,合理使用可以构建出健壮、可靠的应用程序。关键是要理解何时使用它,以及如何提供有意义的错误处理和恢复策略!
2025-10-14 15:22:28
671
原创 JavaScript 顶层 Await
1、阻塞效应:顶层 await 会阻塞模块的解析和依赖模块的执行。3、服务器端渲染:在 SSR 环境中要特别注意异步模块的加载。4、树摇优化:某些打包工具可能对顶层 await 的支持有限。2、循环依赖:要小心由顶层 await 引起的循环依赖问题。示例 1:API 数据预加载。示例 2:功能检测和回退。示例 3:应用初始化。
2025-10-14 15:01:21
354
原创 ES6知识点详解和应用场景
由于ES6特性较多,我们挑选最常用和最重要的特性进行详解。let 和 const箭头函数模板字符串解构赋值默认参数剩余参数和扩展运算符对象字面量增强Promise模块化(import/export)类(Class)迭代器和生成器SymbolSet和Map异步函数(Async/Await)ES6(ECMAScript 2015)是 JavaScript 语言的重大更新,引入了许多强大的新特性,极大地提升了开发效率和代码质量。应用场景:知识点详解2. 箭头函数应用场景:知识点详解3.模板字符串应用场
2025-10-14 14:05:18
626
原创 unapp的uni.setBLEMTU蓝牙通讯设置最大传输单元失效,每次只能传输20个字节
【代码】unapp的uni.setBLEMTU蓝牙通讯设置最大传输单元失效,每次只能传输20个字节。
2025-02-24 13:52:19
1247
2
原创 JavaScript中引用数据类型的浅拷贝
而为引用数据类型变量只开辟用来存储指向数据本身的地址的空间,即引用数据类型变量在内存中存储的是数据的地址,并不是数据本身。在本段代码中,第一句声明变量a并赋值为15,第二句声明变量b并将变量a的值赋给变量b,即变量b的值来源于变量a。紧接着改变变量b的值为100,继续输出两个变量的结果为:15,100。这就是说变量a存储的是数组[10,20,30]的引用(即地址),当把变量a赋值给变量b时,是把a中存储的数组的地址赋给了变量b,即变量b中存储的也是数组的引用,也就是说变量a和b同时指向了一个数组。
2024-10-07 00:46:19
465
原创 webgl入门
3)gl.STENCIL_BUFFER_BIT 清空模板缓存区。2)gl.DEPTH_BUFFER_BIT 清空深度缓存区。1)gl.COLOR_BUFFER_BIT 清空颜色缓存。
2024-08-29 22:57:01
630
原创 2、TS中的基础讲解
每个ts文件饾建议添加 export { } ,解决ts文件报错问题 模块化的问题我们在学习ts的工程中主要学习ts如何写类型,(ts关注的是类型,不是业务逻辑)TS的类型都是在变量后面来写,:后面跟类型 =后面是值 (TS语法,不是js对象) let myName: string = ‘hello world’1、.ts的目的是什么?从安全角度来考虑使用(考虑我在赋予结果的时候是否会发生错误)
2024-05-10 15:33:45
326
原创 1、搭建TS开发环境(利用rollup)
rollup安装:npm i rollup typescript rollup-plugin-typescript2 @rollup/plugin-node-resolve -D。code-runner 如果是js文件 内部会直接采用 node + 文件名来执行此文件,如果是ts文件 需要通过ts-node 来直接执行。tsc–init 初始化ts的配置文件。vscode插件来实现代码的运行。
2024-05-10 15:24:39
673
原创 vue3插件的使用方式
函数类型写法:根目录建一个 plugins_function.js。对象类型写法:根目录建一个 plugins_object.js。
2023-03-10 15:40:07
172
原创 vue3自定义指令 时间格式化指令
1、建立一个directives目录,利用index全部导出,主要逻辑在 format-time.js中2、main.js中用import {//引用 import registerDirectives from './directives/index.js';//把app传过去 registerDirectives(app);3、建立一个index.is4、建立一个 format-time.js。
2023-03-07 16:51:40
492
原创 js数组冒泡排序
let arr=[10,30,20,50,60,15,80]; let temp;//临时变量 for(let i=0;i<arr.length;i++){ for(let j=i+1;j<arr.length;j++){ if(arr[i]>arr[j]){ temp=arr[i]; arr[i]=arr[j]; arr[j]=temp; } } } c..
2022-05-16 11:28:19
159
原创 js获取时间
运行看结果 年月日时分秒 要啥自己拼接 // 处理图表数据,用数据补充阴影 let time = new Date(); // 获取年月日时分秒 this.year = time.getFullYear(); this.month = Number(time.getMonth()) + 1; this.day = time.getDate(); this.hour = time.getHours(); this.minute = time
2022-05-10 16:49:05
187
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅