- 博客(76)
- 收藏
- 关注
原创 AI教我赚100万用1年的时间–4(水文)
企业级AI智能体(AI Agent)是当前B2B领域的热门赛道。“前3个月免费部署,之后按节省成本的30%收费,达不到效果不收费”大型企业(>500人) ¥30-200万 私有化部署+深度定制。关键指标:LTV(客户生命周期价值)> 3倍CAC(获客成本)小微企业(<50人) ¥1-3万 标准化SaaS,自助服务。按节省人力 HR/财务Agent 节省工资的20-30%中型企业(50-500人) ¥5-20万 轻定制+培训。阶段一:找到第一个付费客户(0-3个月)阶段二:可复制增长(3-12个月)
2026-02-07 18:08:39
488
原创 AI教我赚100万用1年的时间-3(水文)
我:我现在已经下载了各个平台的ai应用,如豆包、kimi、千问、deepseek等ai应用,并了解了基础的ai知识 了解ai的工作原理,但是 还是不会使用 ai。朋友圈 每天发1条“产品创作日记”(真实记录过程) 积累30个潜在用户 10分钟/天。小红书 发3篇“干货教程”,文末提一句“我做了个工具” 引流到私域50人 2小时/篇。(不写出来的,下个月就会忘记。这个月的产品,可能粗糙,可能bug多,可能被吐槽。但“用AI加速产品从0到1的过程”是真实可行的。你要收集的不是赞美,而是“这里不好用”的反馈。
2026-02-05 21:45:20
623
原创 AI教我赚100万用1年的时间-2(水文)
ai🤖:在AI浪潮中,提示词工程是门槛最低、变现最快的技能。无论是自由职业者、职场人士还是学生,掌握这项技能都能让你在AI时代脱颖而出。告诉我你想专注的行业(电商/教育/金融/医疗),我可以为你设计一套可以直接卖钱的提示词模板,让你更快开始变现。今天就开始写第一个提示词,30天后,你将拥有可以变现的硬技能!“像教一个聪明但缺乏常识的新员工一样,清晰、具体、有耐心地沟通。格式 指定输出形式 Markdown、表格、JSON、字数限制。· 学习内容:AI是基于概率预测下一个词的模型,不是"思考"
2026-02-04 19:49:59
564
原创 AI教我赚100万用1年的时间-1(水文)
你现在最需要做的:今晚就选定一个技能方向,明天开始投简历或报课,72小时内必须开始第一个动作。跨境电商运营 1个月 代运营Shopee/TikTok店铺 1-3万+提成。AI提示词工程 2-4周 帮企业做AI流程优化、代写提示词 1-3万。当你有了3万+积蓄和成功案例后,必须转型不做"手停口停"的工作。短视频剪辑 1-2个月 接单剪辑、做带货切片 1-2万。目标:月入1-3万,积累启动资金和行业认知。我:请告诉我如何能在1年赚100万!路径B:跨境电商(需要3-5万启动资金)
2026-02-04 00:38:38
432
原创 js篇-数组去重常见四种方法
本文介绍了四种JavaScript数组去重方法:1)利用Set数据结构简洁高效(O(n));2)使用filter+indexOf可读性好但性能较差(O(n²));3)reduce方法体现函数式风格;4)对象属性法兼容性好但会类型转换。性能对比显示Set最优,filter/reduce适合小数据量,对象法兼容老浏览器。建议现代项目首选Set,注意不同方法对对象元素的处理差异,复杂对象可能需要自定义比较逻辑。
2025-07-06 10:08:09
590
原创 css篇-清除浮动常见的三种方法
CSS浮动布局易导致父元素塌陷,本文对比三种清除浮动方法。伪元素法(::after)语义好且现代推荐;overflow法最简洁但可能产生滚动条;空div法兼容性最佳但添加冗余元素。方法选择应考虑项目需求:现代项目优先伪元素法,简单布局可选overflow法,旧浏览器适用空div法。Flex/Grid布局可作为浮动替代方案。
2025-07-05 00:14:21
582
原创 js篇-简易节流、防抖函数
JavaScript中的节流(throttle)和防抖(debounce)是两种优化高频事件处理的技术。节流函数(jl)通过时间戳比较确保函数在固定间隔最多执行一次,适用于滚动等连续事件;防抖函数(fd)使用定时器延迟执行,只在事件停止触发后执行一次,适合搜索建议等场景。两者都通过闭包保存状态,使用apply保持this和参数。节流响应更快但可能遗漏末次触发,防抖延迟响应但确保末次执行。根据场景需求选择合适的技术能有效提升性能。
2025-07-03 15:36:42
517
原创 js篇-事件委托
事件委托是JavaScript中利用事件冒泡机制的高效事件处理模式,将子元素事件委托给父元素统一管理。其优势包括自动处理动态元素、减少监听器数量以优化性能,以及简化代码逻辑。实现原理是通过父元素监听事件,利用event.target识别实际触发元素。典型应用场景包括列表项点击、表格操作等动态内容。事件委托能有效提升应用性能,简化事件管理,是前端开发必备的高级技巧。
2025-07-02 00:36:51
560
原创 js篇-二叉树遍历算法解析
本文介绍了二叉树的三种基本遍历算法:前序遍历、中序遍历和后序遍历。通过JavaScript代码示例展示了每种遍历的递归实现方式,并提供了示例输出结果。分析指出所有遍历算法的时间复杂度均为O(n),空间复杂度在最坏情况下也是O(n)。最后简要说明了不同遍历方式的应用场景,如前序遍历适合复制树结构,中序遍历适合二叉搜索树排序输出,后序遍历则适用于删除树结构等操作。
2025-07-01 15:15:48
281
原创 手写-计算二叉树的最大宽度函数
本文介绍了如何计算二叉树的最大宽度。算法采用层级遍历(BFS),给每个节点分配位置编号:根节点为0,左子节点为父节点位置2,右子节点为父节点位置2+1。在每层遍历时,记录该层首尾节点位置差+1作为当前层宽度,并与已记录的最大宽度比较更新。这种方法避免了存储空节点,通过位置编号的差值准确计算每层实际存在的节点数。时间复杂度为O(n),空间复杂度为O(n)。示例展示了该算法在包含5个节点的二叉树上的应用,最终输出最大宽度为4。
2025-06-29 01:17:34
213
原创 js篇-二叉树的最大宽度计算算法解析
本文介绍了使用广度优先搜索(BFS)计算二叉树最大宽度的算法。通过为每个节点分配位置编号(根节点为0,左子节点为2父位置,右子节点为2父位置+1),每一层的宽度等于最右节点位置减去最左节点位置加1。文章提供了JavaScript实现代码,包括TreeNode定义和widthOfBinaryTree函数,并分析了算法的时间复杂度为O(n),空间复杂度为O(w)。该方法高效解决了包含空节点的二叉树宽度计算问题。
2025-06-29 00:54:01
515
原创 缓存验证:Last-Modified / If-Modified-Since 和 ETag / If-None-Match
特性ETag精度秒级字节级(更精确)唯一性基于时间戳,可能重复唯一标识符,每次变更都会变性能开销较低(只需比较时间)略高(需计算哈希等)兼容性所有 HTTP/1.0 及以上支持需要 HTTP/1.1 或以上适用场景简单静态资源缓存验证动态资源、CDN、负载均衡环境。
2025-06-26 16:58:46
590
原创 Vant-Rem 布局适配
本文介绍了如何使用 Vant-Rem 进行布局适配,主要推荐使用 postcss-pxtorem 和 lib-flexible 两个工具。postcss-pxtorem 用于将 px 单位转换为 rem 单位,而 lib-flexible 用于设置 rem 基准值。文章详细说明了如何安装和配置这些工具,并提供了针对不同设计稿(如375px和750px)的适配方案。通过调整 .postcssrc.js 文件中的 rootValue,可以实现对不同设计稿的适配。此外,文章还提到了一些常见问题和解决方案,如配置文
2025-05-15 18:48:11
513
原创 vue响应式原理
Vue的响应式系统通过Observer、Dep和Watcher的协同工作,实现了数据的自动追踪和视图的自动更新。这种机制极大地简化了状态管理和界面更新,是Vue框架在构建复杂应用时的强大支持。
2024-06-26 22:03:54
580
原创 JS中BOM和DOM的区别
总之,DOM和BOM虽然都是JavaScript的组成部分,但它们关注和操作的内容不同,DOM更侧重于文档内部的结构和内容,而BOM更侧重于浏览器窗口和与浏览器交互的方法。在JavaScript中,BOM(浏览器对象模型)和DOM(文档对象模型)是两个核心的API,它们分别关注不同的浏览器功能。
2024-06-26 17:51:07
479
原创 vue中v-bind和v-model有什么区别
都是指令,用于实现数据和DOM元素之间的双向绑定,但它们的使用场景和功能有所区别。是Vue提供的一种简化表单元素数据绑定的方式,而。则提供了更通用的数据绑定功能。:属性名="表达式"
2024-06-25 21:29:22
1110
原创 v-model中.lazy、.number、.trim
这些修饰符可以单独使用,也可以组合使用,以实现更精细的数据处理和控制。使用这些修饰符可以帮助开发者减少对输入数据的额外处理,并提高应用的用户体验。如果转换失败(比如用户输入了非数字的字符),它会返回原始的字符串。这在处理用户输入时非常有用,因为用户经常会在输入时不小心添加空格。这意味着数据更新会在输入框失去焦点时发生,而不是在输入过程中立即发生。Vue.js 提供了一些修饰符(modifiers),这些修饰符可以用来指定不同的行为。是一个非常核心的指令,它主要用于在表单输入和应用状态之间建立双向绑定。
2024-06-25 21:26:57
965
原创 JS中bind、call、apply之间有什么区别
方法则返回一个新函数,可以延迟执行,并且可以预设一些参数。在实际开发中,可以根据需要选择最合适的方法来改变函数的调用上下文。方法都是预定义的函数原型方法,这三个方法都可以用来改变函数的调用上下文,也就是。都会立即执行函数,区别在于参数传递的方式不同,JavaScript 中的。
2024-06-25 21:01:41
508
原创 Vue3.0里为什么要用Proxy API替代的defineProperty API
在 Vue 2 中,对于数组的变化检测需要重写数组的原型方法,而在 Vue 3 中,利用 Proxy 可以直接对数组进行拦截,使得数组的响应式处理更加简洁和自然。:Proxy 是 ES6 引入的特性,虽然在旧版浏览器上可能不被支持,但在现代浏览器中,Proxy 的支持已经非常良好,而 Vue 3.0 作为一个现代化的框架,采用 Proxy 可以更好地与最新的 JavaScript 特性兼容。
2024-06-25 20:55:13
570
原创 HTTP缓存
HTTP缓存是一种重要的性能优化手段,主要用于减少网络延迟、节省带宽和减轻服务器的负载。通过合理配置和利用这些HTTP缓存类型,可以显著提高Web应用的性能和用户体验。
2024-06-25 19:24:10
286
原创 JS哪些操作会造成内存泄漏
在 JavaScript 中,如果两个对象互相引用,形成一个循环引用,垃圾回收器可能无法识别这些循环引用的对象,从而不能释放它们的内存。:闭包可以捕获外部函数的变量,如果闭包长时间存在,并且它捕获的变量也不再被外部环境所需要,那么这些变量就不会被垃圾回收,从而导致内存泄漏。:当页面上的 DOM 元素被移除或替换后,如果没有清除与这些元素相关联的事件监听器或数据,那么这些元素及相关数据可能会留在内存中。),但忘记清除,或者回调函数引用了不再需要的对象,这可能导致内存泄漏。:如果设置了定时器(如。
2024-06-25 18:58:52
563
原创 JS数据类型
JavaScript 中有多种数据类型,可以分为两大类:基本数据类型(Primitive Data Types)和引用数据类型(Reference Data Types)。
2024-06-25 12:00:18
451
原创 CSS中的BFC
BFC(Block Formatting Context)是 CSS 中的一个概念,它定义了块级盒子的布局规则。BFC是一个独立的渲染区域,它决定了块级盒子如何布局,以及与其他元素的关系和相互作用。
2024-06-25 11:51:00
492
原创 axios常用的请求方式
Axios 是一个基于 Promise 的 HTTP 客户端,用于浏览器和 Node.js 环境。它允许开发者以简单和直观的方式发送HTTP 请求。
2024-06-25 10:37:22
581
原创 webpack怎么配置?用到了哪些loader?
Webpack 是一个现代 JavaScript 应用程序的静态模块打包器(modulebundler),它在开发过程中将应用程序所需的各种资源(如 JavaScript, JSON, CSS, SCSS, LESS, 图片等)打包成一个或多个 bundle,这些 bundle 适用于浏览器。Webpack 的配置是通过一个名为的配置文件来完成的,该文件通常位于项目的根目录下。
2024-06-25 10:18:55
368
原创 Vue-router有哪几种路由守卫
Vue Router提供了多种路由守卫,用于控制路由的导航过程。这些守卫可以在不同的阶段对路由进行拦截和控制,以实现诸如权限验证、页面访问控制等功能。
2024-06-25 09:40:59
662
原创 promise和async的区别
Promise和都是 JavaScript 中用于处理异步操作的机制,但它们的使用方式和目的有所不同。下面是Promise和。
2024-06-25 09:21:59
666
原创 JS是单线程,为什么JS能有异步任务
JavaScript 是单线程的,这意味着它只有一个调用栈和一个内存堆。然而,JavaScript 的异步行为是通过事件循环和回调队列来实现的,这使得它能够在等待某些操作(如网络请求或定时器)完成时继续执行其他任务。
2024-06-25 08:52:09
757
原创 JS数组去重的方式有哪些
这些方法各有优缺点,选择哪种方法取决于具体的需求和场景。例如,使用 Set 是最简洁的方法,但如果需要考虑兼容性(如不支持 ES6 的环境),则可能需要选择其他方法。方法可以用来创建一个新数组,其中包含满足某个条件的元素。通过检查元素的索引是否为第一次出现,可以实现去重。通过检查结果数组中是否已存在当前元素,可以实现去重。通过创建一个对象或 Map,可以利用键的唯一性来去重数组。方法检查新数组中是否已包含当前元素,可以实现去重。方法,可以创建一个去重的新数组。利用对象的键唯一性,结合。方法,可以实现去重。
2024-06-25 08:50:46
308
原创 Vuex怎么实现数据持久化
在 Vuex 中,当你刷新页面时,所有 Vuex 存储的数据都会丢失,因为 Vuex存储在内存中,而页面刷新会清除内存中的数据。为了在页面刷新后仍然保留数据,你可以将数据持久化到浏览器的本地存储(如 localStorage或 sessionStorage)中。
2024-06-25 08:46:09
501
原创 CSS中实现元素水平垂直居中的方式有哪些
每种方法都有其适用的场景,选择哪种方法取决于具体的需求和兼容性要求。通过将元素的display属性设置为table-cell,并使用vertical-align和text-align来实现居中。通过在父元素上使用伪元素来创建一个占位符,然后通过设置margin来实现居中。CSS Grid是另一种强大的布局系统,也可以用来实现元素的水平垂直居中。通过将元素的定位设置为绝对定位,并使用transform属性来调整位置。Flexbox是一个现代的布局模型,可以轻松实现元素的水平垂直居中。
2024-06-24 23:58:01
441
原创 TCP和UDP的区别
TCP(传输控制协议)和 UDP(用户数据报协议)是互联网协议族(TCP/IP)中的两种核心传输层协议,它们在数据传输的方式和特性上有显著的区别。
2024-06-24 23:04:36
620
原创 TS中interface和type的区别
更灵活,可以用于定义各种类型,包括联合类型和元组。在实际开发中,选择使用。都可以用来定义对象的类型,但它们之间存在一些差异。更适合用于定义对象的形状,并且支持声明合并和。往往取决于个人或团队的偏好和项目的具体需求。在 TypeScript 中,
2024-06-24 21:17:54
713
原创 Vuex中的重要核心属性
这些核心属性共同构成了 Vuex 的状态管理机制,使得在大型单页应用中管理状态变得更加容易和可维护。通过使用这些属性,开发者可以确保状态的变化是可预测的,并且可以轻松地追踪状态的变化。应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。Vuex 是一个专为 Vue.js。
2024-06-24 21:03:21
1505
原创 JS延迟加载的方式有哪些
JavaScript延迟加载(也称为懒加载)是一种优化网页性能的技术,它允许脚本在页面加载完成后再执行,从而加快页面初始加载速度。选择哪种延迟加载方式取决于你的具体需求和使用场景。例如,对于简单的脚本加载,可以使用。对于复杂的应用程序,可能需要使用模块加载器或打包工具的代码分割功能。
2024-06-24 20:51:09
597
原创 export和export default的区别
都用于导出模块中的内容,但它们在使用方式和行为上有一些区别。如果模块中有多个功能需要导出,可以使用。如果模块主要提供一个功能或类,可以使用。在实际使用中,可以根据需要选择使用。同时,一个模块中可以同时使用。在ES6模块系统中,
2024-06-24 19:02:56
591
原创 ES6中Module和CommonJS模块有什么区别
ES6中的模块(通常称为ES模块或ESM)与CommonJS模块在语法、加载机制和行为上有显著的区别。
2024-06-24 18:22:11
415
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅