学AI找索奇
文章平均质量分 69
AI实战专栏,索奇在这里不断分享新的技能,为你铺垫前行之路
即兴小索奇
分享AI科技+商业洞察,公zhong号:即兴小索奇,点击关注,添加群聊&获取AI+商业资源,一起成长~
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
OpenAI,ChatGPT 将开放成人内容!
OpenAI 首席执行官 Sam Altman 于 10 月 14 日宣布,从今年 12 月起,ChatGPT 将允许通过年龄验证的成年用户访问成人向内容。公司希望确保模型在应对心理健康问题时足够安全,但这样的做法也让许多并无此类问题的用户觉得产品没那么有用,也不够有趣。他表示,过去 ChatGPT 在内容限制上相当严格,主要是出于对心理健康风险的谨慎考虑。因此,OpenAI 决定放宽部分限制,允许成年用户在通过年龄验证后访问更多类型的内容。目前引发了广泛的讨论,既有期待,也有质疑....原创 2025-10-15 23:18:31 · 207 阅读 · 0 评论 -
DeepSeek R1为什么撒谎严重?幻觉率远超V3、GPT等模型
在 AI 的语境中,“幻觉”指的是模型在生成内容时出现的错误信息或完全虚构的内容。这通常发生在模型试图回答其未在训练数据中遇到的问题时。例如,当你问模型一个冷门的历史事件,它可能会凭空编造一个看似合理但实际上并不存在的事件。这些提示词的核心问题是信息缺口过大—— 要么超出公开史料覆盖范围,要么强制要求模型 “填补不存在的细节”,最终导致编造。原创 2025-10-15 23:00:37 · 460 阅读 · 0 评论 -
missing ScriptRunContext 警告
运行后,Streamlit 会自动启动一个本地 Web 服务器(默认端口 8501),并在终端显示访问链接(通常是。运行时,跳过了 Streamlit 的环境初始化流程,导致上下文缺失,因此会出现这个警告。命令启动 —— 它会自动初始化 Web 服务器、处理浏览器连接,并创建必要的运行上下文。Streamlit 应用需要在其自身的运行时环境中启动,这个环境会创建一个。(脚本运行上下文)来管理 Web 服务、用户交互和页面更新。),此时在浏览器中打开该链接就能正常使用你的应用,且警告会消失。原创 2025-10-08 09:20:52 · 456 阅读 · 0 评论 -
别了GPT-4系列!推理模型正在终结大语言模型时代
我们来看看什么是推理模型。推理模型的核心在于 多步骤推理,它不仅仅是接收输入并给出答案,而是在输入的基础上,模拟人类的思维过程,进行一系列的逻辑推理。推理模型的优势是,它能理解复杂任务中的各个层次,逐步推导出合理的结论。举个例子,推理模型常见的应用包括 数学证明、复杂的逻辑推理、以及 法律文书解读。这类任务往往不止依赖于简单的数据关联,而需要通过深入分析多种条件,逐步得出结论。原创 2025-10-01 22:09:17 · 578 阅读 · 0 评论 -
别再踩坑!机器学习数据预处理 3 大雷区,数据泄露竟排第一
可要是缺失的是 “用户性别” 这种分类型数据,填平均值根本没用,要么用众数(比如大多数是女性就填女性),要么干脆新增一个 “未知” 类别,这样才不会误导模型。比如你用线性回归、SVM 或者 KNN 的时候,要是特征里既有 “用户年龄”(范围 18-80),又有 “月消费金额”(范围 0-10000),这两个特征的数值范围差了上百倍,模型会不自觉地更看重 “月消费金额”,忽略 “年龄” 的影响。比如同样是 “订单金额” 缺失,可能是系统故障,也可能是用户没付款,这两种情况的处理方法天差地别,工具可分不清。原创 2025-09-19 16:02:17 · 505 阅读 · 0 评论 -
别瞎写大模型提示词!提示词工程 3 招,输出精准到直接交差
但你要是加上 “背景:三线城市大学周边的奶茶店,主打低糖健康,客群以学生为主,预算 5000 元,想在开学季做活动”,大模型立马能给出 “校园 KOL 试喝、凭学生证减 5 元、组队下单折上折” 这类精准方案。2. 相机微距模式太惊喜,拍多肉的绒毛根根分明,朋友圈摄影大赛稳了”,然后说 “按这个风格写一款笔记本电脑的短评,突出轻薄和散热”,出来的内容绝对有那味儿。你看,与其让它猜,不如把你知道的全说出来 —— 哪怕是 “我不确定 XX 数据,你先基于常见情况分析,标出让我补充的部分”,都比藏着掖着强。原创 2025-09-19 15:59:53 · 268 阅读 · 0 评论 -
大模型实战避坑:数据清洗 + 标注心法让模型效果从 0.6 飙到 0.8
比如明确 “还行”“一般” 算中性,“不算差” 算弱正面,甚至可以拉上标注的人先试标 100 条,统一完标准再开工。有个做医疗问答模型的朋友,全用的学术论文数据训练,结果上线后用户问 “感冒了能吃头孢吗”,模型拽了一堆专业术语,普通人根本看不懂。很多人觉得标注的人越多越快,却没统一标注标准。比如同样一句 “这价格还行”,有人标中性,有人标正面,模型学的时候就蒙了 —— 到底该听谁的?最近发现好多朋友玩大模型实战时,一上来就扎进代码里调参,结果忙活大半天,模型效果还不如直接用基础模型,踩坑踩得那叫一个惨。原创 2025-09-19 15:51:02 · 176 阅读 · 0 评论 -
机器学习入门避坑天花板!3 招让新手绕开理论与特征工程大坑
正确的路子应该是 “先跑通流程,再回头补理论”。再比如特征缩放,SVM、逻辑回归这些算法对特征尺度很敏感,不做标准化的话,数值大的特征会 “欺负” 数值小的特征,导致模型跑偏。第二要 “匹配任务”,想学分类就选分类数据集,想学回归就用波士顿房价数据集,别拿时序数据去练逻辑回归,这不找罪受嘛。简单说,特征就像模型的 “食材”,你给的全是不新鲜的、没用的食材,再厉害的 “厨师” 也做不出好菜。其实啊,机器学习入门根本不是 “啃完大部头才能上手”,反而是很多人踩了 “顺序错了” 的坑,才觉得它难如登天。原创 2025-09-19 15:36:06 · 140 阅读 · 0 评论 -
AI 搜索算法封神技巧!3 招碾压传统搜索高效找资料快 10 倍
比如你是个 Java 程序员,想查排序算法,要是只搜 “排序算法”,出来的可能是 C++、Python 各种版本的代码,筛选起来头都大。这词听着玄乎,说白了就是 AI 会把你的问题和网上的内容,都变成一串看不见的 “数字密码”。比如你问 “机器学习怎么入门不踩坑”,它会把 “入门”“机器学习”“避坑” 这些信息变成向量,再去匹配那些向量相似的优质内容,而不是只找包含这几个词的文章。其实啊,这不是你搜得不对,是没摸透 AI 搜索算法的 “脾气”—— 和咱们以前用的传统搜索比,它根本不是一个逻辑。原创 2025-09-19 15:34:07 · 286 阅读 · 0 评论 -
大模型实战别当冤大头!4 个避坑关键让数据 + Prompt 直接出效果
我见过最夸张的案例是一家教育机构,一开始让模型写招生话术,prompt 就五个字 “写招生文案”,结果模型输出的全是 “我校师资雄厚、设施完善” 的套话,转化率低得可怜。其实没有绝对的答案,得看你的业务需求。但要是像金融、医疗这类有敏感数据的行业,私有化就是必须的,不过得提前算好算力成本 —— 之前有个医院踩过坑,没算清楚并发量,部署完才发现高峰时模型反应慢得像 “蜗牛”,又花了不少钱加算力。简单说,大模型就像个挑食的吃货,你给它喂的全是杂乱无章的 “生食材”,它肯定做不出符合你口味的 “菜”。原创 2025-09-19 15:32:02 · 233 阅读 · 0 评论 -
大模型实战别浪费!3 个 AI 指令技巧让 ChatGPT 出活快 10 倍
我上周帮会计朋友做费用分析,直接把 3 个月的 Excel 表格截图丢给模型,加了句 “帮我分析差旅费超支原因,对比上月数据,用‘问题 + 原因 + 建议’的结构,建议要具体到‘怎么砍预算’”,模型直接指出了 “跨区出差频次过高” 的关键问题,还给了 “同区域合并拜访” 的具体方案,朋友说这比他自己算半天管用多了。我见过最绝的是一个做教育的老师,用模型帮他设计课程,从 “目标学生” 问到 “课堂互动游戏”,再到 “课后作业分层设计”,足足追问了 8 轮,最后出来的课程方案直接拿去用了,省了一周的备课时间。原创 2025-09-19 14:55:52 · 316 阅读 · 0 评论 -
大模型实战 3 个 Prompt 技巧 让 AI 从废话生成器变爆款输出神器
亲测这些工具对提升效率很有帮助,但核心还是得理解 “AI 的思考逻辑”—— 你得站在 AI 的角度想:“我要给什么信息,它才能给出我想要的答案?比如写技术博客,就说 “目标读者是刚入门的 Java 开发者,要讲清楚‘微服务注册中心’的作用,用‘小区快递站’做类比,避免出现超过 3 个专业术语”。就拿写推广文来说,让 AI 当 “刚毕业的文案实习生” 和 “5 年跨境电商资深策划”,输出的东西能一样吗?别再把 AI 当成 “自动写作机”,把它当成需要你引导的 “超级助理”,你越会 “聊”,它越好用。原创 2025-09-19 14:48:52 · 451 阅读 · 0 评论 -
Java OOM 排查神技 1 次吃透 3 种溢出类型 新手也能省 2 小时排错
第一步先看日志,确认是 heap space 报错。比如写个方法 func (),里面直接调用 func (),没有终止条件,调用次数一多,栈帧堆得比积木还高,超过栈的最大容量就炸了。堆内存溢出的报错是 “java.lang.OutOfMemoryError: Java heap space”,简单说,堆就像家里的储物间,所有 new 出来的对象都放这儿,储物间满了再买新家具(创建对象)就放不进去了。但小索奇得说句实话,调大栈空间只是治标,大部分栈溢出都是代码逻辑问题,比如递归死循环,改代码逻辑才是根本。原创 2025-09-19 14:43:29 · 348 阅读 · 0 评论 -
Java 线程池避坑指南:揭秘 ThreadPoolExecutor 5 大参数,搞定 90% 并发问题
简单说就是线程池里的 “正式员工” 数量,这些线程是常驻的,只要线程池启动,它们就一直在,来了任务直接接手。给你举个实际案例:之前做电商订单系统,支付回调接口是 IO 密集型的,CPU 是 8 核,我把 corePoolSize 设成 16,max 设成 32,队列设成 50,拒绝策略用自定义的 “存 Redis 重试”。其实解决这问题的关键就是线程池,但我发现好多人都是 “知其然不知其所以然”,拿着 ThreadPoolExecutor 就用,参数瞎填一通,运气好没出问题,运气差直接把服务搞挂。原创 2025-09-19 14:41:08 · 416 阅读 · 0 评论 -
看 8 遍还不懂 JS 闭包?原理 + 面试坑一次性讲透,新手秒懂
这就是 JS 的 “作用域隔离”,本来是为了避免变量乱串,但有时候咱们偏想 “钻个空子”—— 比如函数执行完了,还想留住里面的某个值,这时候闭包就派上用场了。这里的立即执行函数就是外层函数,j 是它的变量,内层的点击事件函数引用了 j,形成闭包。说实话,我当年初学 JS 的时候,也对着 “函数嵌套函数,内层引用外层变量” 这行字发呆了半天,后来敲了几十行代码才突然 “顿悟”,今天就用大白话给你掰扯明白。组件销毁的时候要是忘了清 timer,这个闭包就一直引用着组件实例,实例没法被回收,内存就漏了。原创 2025-09-19 14:34:47 · 356 阅读 · 0 评论 -
你做网页动画的时候是不是也碰过这种糟心事?写了个按钮 hover 放大效果,结果鼠标移上去元素 “跳一下” 才开始动;或者做加载旋转动画,在手机上卡得像 PPT,电脑上却流畅得不行,对着代码翻来覆去查
这动画在各种浏览器里都稳,对吧?本地 Chrome 里看着挺丝滑,一到 Safari 浏览器,卡片上浮的时候居然带着残影,客户反馈说 “这动画看着眼晕”,当时我对着 Safari 调试器,差点把电脑砸了!比如你做个 “点击按钮弹出提示” 的动画,提示框从透明变不透明,要是没设 fill-mode,动画结束后提示框会瞬间消失,这体验也太糟糕了!我之前帮同事调过一个老项目,动画在 iPhone 6 的 Safari 里死活不动,查了半天发现就是没加 - webkit - 前缀,加上之后立马正常了。原创 2025-09-19 14:21:22 · 377 阅读 · 0 评论 -
JS 数组操作避坑封神 splice/map 踩坑实录 遍历技巧全掌握
但要注意,shift 和 unshift 效率不高,因为它们会移动数组里所有元素的位置,要是数组特别大,比如有几万个元素,用这俩方法能卡半天。其实特简单,数组是动态的,你删了索引 i 的元素,后面的元素会自动往前挪一位,变成新的索引 i,但循环里 i 还在继续加 1,这不就把刚挪过来的元素给跳过了嘛!想删数组里的某些元素,写个 for 循环从 0 开始遍历,结果删完一看,总有几个漏网之鱼,刷新好几次都没解决,最后只能一脸懵地换写法?这样就算前面的元素挪位置,也不影响还没遍历到的元素,绝对不会漏删。原创 2025-09-19 14:15:35 · 389 阅读 · 0 评论 -
CSS 垂直居中避坑指南 flex/grid 实战技巧 布局再也不翻车
我之前就犯过这错,加了 10px padding,line-height 还设 40px,结果按钮变高了,文字直接顶到上面。为了让一个按钮在 div 里居中,给按钮加了 margin-top: 20px,本地看着挺完美,一到测试的大屏显示器上,按钮直接跑到中间偏下,领导路过瞥了一眼:“这布局怎么歪歪扭扭的?明明看着代码没问题,预览时元素要么偏上一点,要么沉底半格,调 margin 调半天,最后干脆用 padding 硬凑,结果换个屏幕尺寸又崩了?还有种场景,元素是块级的,比如一个卡片要在页面正中间。原创 2025-09-19 14:13:37 · 469 阅读 · 0 评论 -
Java 线程池踩坑实录:参数设错直接宕机?调优技巧让性能翻倍
结果高峰期一来,任务全堆在队列里,核心线程慢悠悠处理,用户那边全是 “请求超时”,查了半天才发现 —— 队列设太大了,根本没触发最大线程数,等于白设了临时工!当时写个批量导出数据的接口,想着每导出一条数据开个线程快,结果测试的时候导 500 条数据直接把服务器整崩了,领导过来一看日志,当场没忍住笑出声 —— 这跟大街上随便拉人干活,最后人满为患把路堵死有啥区别?简单说,线程池就是个 “线程储备站”,提前养着一批线程待命,来了任务就派个现成的上,干完活线程回池里歇着,不用每次都重新创建、销毁。原创 2025-09-19 14:11:35 · 281 阅读 · 0 评论 -
别再死磕 JS 闭包了!3 个生活例子 + 避坑指南,新手也能秒懂闭包原理
但实际情况是,balance 不仅没消失,还能被 myCard 修改 —— 这就是闭包在起作用:内层函数 buyNoodle 访问了外层函数 noodleShop 的变量,而且内层函数被 “带” 到了外层函数外面执行,这就形成了闭包。后来你搬家了,换了个区住,但再去这家面馆时,店员一刷你的卡,照样能调出你的信息 —— 闭包就有点像这张储值卡,函数 “出生” 时带的 “环境信息”,就算它跑到别的地方执行,也能随时调出来用。”,让闭包失去对这些变量的引用,浏览器自然就会回收内存了。满足这三点,闭包就诞生了。原创 2025-09-18 15:45:33 · 356 阅读 · 0 评论 -
前端防抖节流避坑手册:搞定高频事件优化的 JS 性能提升神器
过了这个时间,再触发才会又执行。对了,还有个坑得提醒你:用防抖的时候,别把延迟设太长,不然用户会觉得 “怎么点了没反应”,100-300 毫秒是比较舒服的区间;节流的间隔也得根据场景调,滚动加载可以松一点,按钮点击就得紧一点,比如 500 毫秒,不然还是可能重复触发。小索奇之前踩过这坑,做用户注册页面的时候,按钮没处理,有个用户连续点了三次,直接创建了三个相同账号,后面删数据删得我头都大了😂。小索奇上次帮朋友改代码,他给按钮加了防抖,结果延迟设了 2 秒,用户点完以为没点到,又点了好几次,反而更乱了。原创 2025-09-18 15:35:26 · 351 阅读 · 0 评论 -
JS 异步编程封神指南:从回调地狱到 async/await,90% 开发者都在用的避坑技巧
我当初第一次写的时候,随手在普通函数里加了个 await,结果控制台红一片,调试了十分钟才反应过来忘了加 async,尴尬得不行。用 async/await 写的时候,先让加载动画显示,然后在 try 里先后 await 两个请求,成功了就渲染页面,失败了就在 catch 里显示 “加载失败”,最后不管成功失败都关掉加载动画。就像你煮泡面的时候,总不会守着锅等水开,肯定会先去拿调料、找筷子,水开了再回来下面 ——JS 的异步就是这个逻辑,把要等的活儿丢到 “后台”,先干别的,等活儿有结果了再回头处理。原创 2025-09-18 15:30:46 · 370 阅读 · 0 评论 -
炸裂!CSS 优先级避坑技巧,彻底搞定样式不生效难题
小索奇总结了个 “打分公式”:内联样式算 1000 分,ID 选择器算 100 分,类、伪类、属性选择器算 10 分,元素、伪元素选择器算 1 分。,里面的 p 标签会继承这个颜色,但这时候只要给 p 标签加个最普通的元素选择器样式,就能轻松覆盖它。比如你写的是.container p,而子元素是文字,那肯定不生效啊,选择器都没对上!平时写样式的时候,尽量用类选择器,少用 ID 和内联样式,更别瞎加!} 重置样式,这没问题,但要是想给某个元素加边距,直接写元素选择器就行,根本不用怕被 * 覆盖。原创 2025-09-18 14:24:44 · 344 阅读 · 0 评论 -
Lambda 表达式的新手必备
要是你对着一个有俩抽象方法的接口写 Lambda,编译器立马报错,这时候你肯定懵:明明照着例子写的,咋就不对?后来这行代码出了 bug,排查的时候所有人都对着那串 “箭头 + 括号” 头疼,最后花了俩小时才定位到是优惠计算的逻辑错了。你是不是也遇见过这种情况:看别人写的 Java 代码,一堆箭头 “->” 乱飞,明明几十行的逻辑,硬生生缩成几行,盯着看半天还没捋明白?小索奇上次改老项目,把三段类似的遍历逻辑换成 Lambda,代码量直接少了一半,同事 review 的时候都夸 “这代码看着真舒服”。原创 2025-09-18 14:22:39 · 372 阅读 · 0 评论 -
CSS Grid 布局终极秘籍 秒杀 Flex 的排版技巧 + 避坑指南
说白了,Flex 是 “一维布局”(要么排一行要么排一列),而 Grid 是 “二维布局”(能同时控制行和列),对付复杂排版简直是降维打击。你想想看,这要是用 Flex 做,得给父容器加 flex-wrap,算每个卡片的 flex-basis,跨两行的卡片还得用 position 定位,折腾半天还容易错位。Grid 直接 “画格子、放元素”,逻辑一目了然,对吧?比如想弄个 “2 行 3 列” 还得算宽度,中间加个跨两行的大卡片更是难上加难,嵌套了好几层容器,调完发现响应式又乱了,这体验也太折腾了吧?原创 2025-09-18 00:14:31 · 440 阅读 · 0 评论 -
Java ArrayList LinkedList 性能对决 选型秘籍 + 避坑技巧 秒杀 90% 集合难题
但 LinkedList 就麻烦了,它没有索引,得从第一个珠子开始,一个个往后数,直到数到第 100 个,时间复杂度是 O (n)。数据量越大,差距越明显 —— 小索奇亲测过,查 10 万条数据里的中间元素,ArrayList 只用 1 毫秒,LinkedList 得用几百毫秒,这差距简直天差地别!因为它只要改一下插入位置前后两个珠子的 “牵手关系” 就行,比如在珠子 A 和珠子 B 之间插珠子 C,只要让 A 记着 C、C 记着 A 和 B、B 记着 C,三步搞定,时间复杂度 O (1)。原创 2025-09-18 00:13:05 · 354 阅读 · 0 评论 -
JavaScript 数组高级方法秘籍 map filter reduce 用法 秒杀 for 循环的避坑技巧
初始值 0 很重要,要是没写,reduce 会拿数组第一个元素当初始 acc,第二个元素当第一个 cur,万一数组是空的,直接报错!还有个实用的方法得提一嘴 ——find,它和 filter 很像,但 filter 返回所有符合条件的元素,find 只返回第一个符合条件的,找到就停,不用遍历整个数组。很多新手写完 map 发现原数组没变,还以为代码错了,其实这是它的设计特性,避免意外修改原始数据,对吧?简单说就是,它能遍历数组里的每个元素,按你写的规则改一改,最后返回一个新数组。是不是觉得很有意思?原创 2025-09-18 00:11:23 · 351 阅读 · 0 评论 -
JavaScript async/await 实战秘籍 异步编程技巧 + 避坑指南 秒杀 Promise then 链
其实 async/await 就是 Promise 的 “语法糖”,它没有创造新的异步机制,只是把 Promise 的 then 调用变成了编译器层面的自动处理。你写的 await getUserInfo (),本质上还是在调用 Promise 的 then 方法,只是不用你手动写了而已。说白了,Promise 解决了 “回调地狱”,而 async/await 解决了 “then 链的繁琐”,把异步逻辑写得跟顺序执行的代码一模一样。前面忘了提一句,async/await 虽然好用,但也不是万能的。原创 2025-09-18 00:09:39 · 574 阅读 · 0 评论 -
JavaScript Promise 终极指南 解决回调地狱的异步神器 99% 开发者都在用
前面忘了提一句,Promise 虽然解决了回调地狱,但如果逻辑复杂,一堆 then 连起来也会有点乱,这时候就可以用 async/await 了 —— 不过那是 Promise 的 “语法糖”,本质还是基于 Promise 实现的,先把 Promise 吃透,再学 async/await 会更轻松。你有没有写过这种让人头大的代码:想先获取用户信息,再拿用户的订单列表,最后查订单里的商品详情,结果嵌套了三层回调函数,代码乱得像一团毛线,改个逻辑得从头捋到尾,稍微多嵌套一层就成了 “回调地狱”?原创 2025-09-18 00:07:54 · 544 阅读 · 0 评论 -
Flex 布局终极秘籍 CSS 布局技巧 + 避坑攻略 90% 程序员都在用的排版神器
怎么子元素突然变高了?这里的 justify-content 管的是 “主轴” 方向的排列,默认主轴是水平的,所以 space-between 就是让三个卡片左右顶边,中间间距相等。这里的 flex-grow: 1 意思是 “如果有剩余空间,全部归我”,而 flex-shrink: 0 是 “就算空间不够,我也不缩小”,完美解决了自适应布局的问题。今天给你扒 CSS 里的 “布局万能钥匙”——Flex 布局,小索奇当年刚学的时候,直接把它当成了救星,以前两小时调不好的布局,现在 20 分钟搞定!原创 2025-09-18 00:06:07 · 291 阅读 · 0 评论 -
Java Stream 流神操作:集合处理 20 行变 5 行,这些避坑技巧 90% 程序员不知道
这里的 filter、map、distinct 都是 Stream 的 “中间操作”,就像流水线的不同工序,最后一个 count 是 “终止操作”,只有执行终止操作的时候,前面的中间操作才会真正运行,这叫 “惰性求值”。手里拿着一个订单列表,既要筛选出金额大于 100 的,又要提取买家 ID,最后还得统计这些 ID 的去重数量,结果写了三层 for 循环,代码又长又乱,排查 bug 的时候眼睛都快瞎了?比如你要是只写了 filter 和 map,没写 count,它就知道你还没要结果,干脆不执行,省资源。原创 2025-09-18 00:04:20 · 274 阅读 · 0 评论 -
爆肝整理!Flexbox 布局避坑 + CSS 实战技巧 新手也能秒会居中
我上次做商品卡片布局,就因为忘了设这个,三个卡片本来一样宽,结果因为其中一个标题字多,另外两个直接被压窄了,视觉上巨丑,排查了好久才发现是 flex-shrink 在搞鬼!我之前做导航栏,加了七八个菜单按钮,没设 flex-wrap,结果屏幕一缩小,按钮直接叠在一起,甚至跑到 logo 上面去了,那画面简直没法看。我之前就踩过这坑,父容器没设 width,写了 space-between 结果俩元素还是贴在一起,还以为是属性用错了,后来给父容器加了 width: 100%,立马就两端对齐了,原来这么简单!原创 2025-09-18 00:00:27 · 422 阅读 · 0 评论 -
爆肝总结!JavaScript Promise 与 async/await 避坑秘籍 告别回调地狱
你想想看,万一接口挂了、网络断了,Promise 就会处于 rejected 状态,要是没 catch 接住这个错误,整个程序可能直接卡住,还找不到问题在哪儿 —— 我之前就因为这事儿排查了半小时,最后发现是漏了一行 catch,真想拍自己脑袋!简单说啊,Promise 就是个 “承诺容器”—— 你让它去办件耗时的事(比如调接口、读文件),它先给你个凭证,告诉你 “别急,我办完了会通知你”,期间你该干啥干啥,不用傻等着。你要是没搞懂 Promise 的原理,用 async/await 的时候照样会踩坑。原创 2025-09-17 23:58:42 · 360 阅读 · 0 评论
分享